Cómo solucionar «Setting locale failed» en Ubuntu
Seguramente siempre que instalas Ubuntu por primera vez te encuentras con un error (Setting locale failed) algo molesto al hacer una conexión SSH y ejecutar determinados comandos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# pct list perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:en", LC_ALL = (unset), LC_PAPER = "de_BE.UTF-8", LC_ADDRESS = "de_BE.UTF-8", LC_MONETARY = "de_BE.UTF-8", LC_NUMERIC = "de_BE.UTF-8", LC_TELEPHONE = "de_BE.UTF-8", LC_IDENTIFICATION = "de_BE.UTF-8", LC_MEASUREMENT = "de_BE.UTF-8", LC_TIME = "de_BE.UTF-8", LC_NAME = "de_BE.UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to a fallback locale ("en_US.UTF-8"). |
Esto se debe a que el sistema operativo al cual queremos conectarnos no tiene instalado los locales de nuestro sistema. Los locales son empleados en Linux para definir qué lenguaje o juego de caracteres (enconding) usan los usuarios. A continuación te muestro una manera sencilla de solucianar el error.
Solución al error de locale
Solucionar este error es bastante simple; no requiere instalar ni modificar nada en el servidor remoto que queremos conectarnos. El problema está en nuestra PC, ya que, por defecto, el cliente SSH en Ubuntu exporta la configuración de locales cuando establecemos una conexión SSH. Para cambiar tal comportamiento editamos el archivo de configuración del cliente SSH localizado en: «/etc/ssh/ssh_config«:
1 |
$ sudo nano /etc/ssh/ssh_config |
Luego comentamos la línea:
1 |
SendEnv LANG LC_* |
Quedando de esta manera:
1 |
# SendEnv LANG LC_* |
Comandos útiles
Para la administración de locales existen varios comandos que nos pueden ser de mucha ayuda.
Ver los locales actuales
Para ver la información de los locales actuales instalados:
1 |
$ locale |
Ver todos los locales disponibles
Puedes ver todos los locales disponibles en nuestro sistema con la línea:
1 |
$ locale -a |
Conclusiones
Como hemos podido ver la solución del problema se remonta a la configuración de nuestro cliente SSH y comantando la exportación de locales obtenemos el resultado esperado.
Ojalá este tip te sea de mucha ayuda.
Eso soluciona el problema con SSH, pero no con el sistema. El sistema sigue teniendo una falla con las locales.
Hola Abdelkarim, para el caso descrito es la solución que puedes aplicar cuando se exportan los locales desde tu cliente SSH hacia el servidor. Normalmente esto paso con Ubuntu que genera locales extras que no se instalan en los servers o instalastes tu PC en un idioma diferente al server, por lo que cuando te conectas desde tu PC al server exportas tu configuración de locales hacia el server y si el server no las tiene instalada, te da error.