¿Cómo soluciono mi problema de configuración regional?

Estoy recibiendo este mensaje cada vez que hago algo como iniciar o detener un servicio.

perl: warning: Setting locale failed.   perl: warning: Please check that your locale settings:           LANGUAGE = "en_US:en",           LC_ALL = (unset),           LC_MESSAGES = "en_US.UTF-8",           LANG = "en_US.UTF-8"       are supported and installed on your system.   perl: warning: Falling back to the standard locale ("C").   locale: Cannot set LC_CTYPE to default locale: No such file or directory   locale: Cannot set LC_MESSAGES to default locale: No such file or directory   locale: Cannot set LC_ALL to default locale: No such file or directory   (Reading database ... 21173 files and directories currently installed.)  Removing bind9 ...   * Stopping domain name service... bind9                                        [ OK ]Processing triggers for man-db ...   locale: Cannot set LC_CTYPE to default locale: No such file or directory   locale: Cannot set LC_MESSAGES to default locale: No such file or directory   locale: Cannot set LC_ALL to default locale: No such file or directory   

¿Cómo soluciono este error ?

Primera carrera locale para enumerar las configuraciones regionales definidas actualmente para la cuenta de usuario actual:

$ localeLANG=CLANGUAGE=LC_CTYPE=fi_FI.UTF-8LC_NUMERIC="C"LC_TIME="C"LC_COLLATE=fi_FI.UTF-8LC_MONETARY="C"LC_MESSAGES=fi_FI.UTF-8LC_PAPER="C"LC_NAME="C"LC_ADDRESS="C"LC_TELEPHONE="C"LC_MEASUREMENT="C"LC_IDENTIFICATION="C"LC_ALL=

A continuación, genere la configuración regional que falta y reconfigure las configuraciones regionales para que se den cuenta:

$ sudo locale-gen "en_US.UTF-8"Generating locales...  en_US.UTF-8... doneGeneration complete.$ sudo dpkg-reconfigure localesGenerating locales...  en_US.UTF-8... up-to-dateGeneration complete.

¡Ahora ya no verá ningún error!

Nada de lo sugerido anteriormente funcionó en mi caso (Ubuntu Server 12.04 LTS). Lo que finalmente ayudó fue poner en el archivo /etc/environment:

LC_ALL=en_US.UTF-8LANG=en_US.UTF-8

Por alguna razón faltaba. Las salidas para la configuración regional y otros comandos parecían que las variables estaban definidas correctamente. En otras palabras, no des por sentado que todas las cosas básicas se declaran donde deberían declararse.

Deberían desaparecer después de la emisión:

sudo locale-gen en_US en_US.UTF-8sudo dpkg-reconfigure locales 

dpkg-reconfigure reconfigura los paquetes después de que ya se hayan instalado. Pásele los nombres de un paquete o paquetes para reconfigurar. Hará preguntas de configuración, al igual que cuando se instaló el paquete por primera vez.

Simplemente agregue lo siguiente a su .bashrc archivo (suponiendo que estés usando bash)

export LC_ALL="en_US.UTF-8"

Este es un problema común si se está conectando de forma remota, por lo que la solución es no reenviar su configuración regional. Editar /etc/ssh/ssh_config y comenta SendEnv LANG LC_* alinear.

Hay un comando para eso:

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

Actualiza /etc/default/locale con los valores proporcionados.

Para aplicar los cambios, puede

source /etc/default/locale

Lo que funcionó para mí en 12.10 fue esto:

apt-get install language-pack-en-base  

Esto fue después de dpkg-reconfigure locales no produjo resultados.

No olvide salir de su sesión SSH (o de su X11) saliendo y volviendo a iniciar sesión. Todas estas sugerencias no funcionaron para mí a menos que volviera a iniciar sesión....

Para Ubuntu 12.10, nada de lo anterior funcionó, excepto la solución de ratzs. Recomiendo agregar esto a su /etc/bash.archivo bashrc:

export LC_ALL="en_ZA.UTF-8"export LC_CTYPE="en_ZA.UTF-8"

Estaba atrapado en un estado extraño en el que mi máquina local está configurada para es y así, la máquina remota (a través de vagrant) se había suministrado en un estado no manipulado. Por lo tanto, tuve que usar el manual export= solo para facilitar un dpkg-reconfigure. Entonces el sistema está bien.

export LC_ALL="en_US.UTF-8"sudo dpkg-reconfigure locales

el posible duplicado de las variables Locale no tiene efecto en el shell remoto (perl: warning: Setting locale failed.)

Relacionado: ¿Cómo configurar la configuración regional?

Solución fácil y permanente para todos los usuarios: https://askubuntu.com/questions/881742/locale-cannot-set-lc-ctype-to-default-locale-no-such-file-or-directory-locale/893586#893586

Necesitas decir: ¿Tu máquina? ¿O solo tiene un inicio de sesión de usuario y no puede cambiar la configuración del sistema? (Sí, sé que esta es una pregunta muy antigua. Y los votos a favor de las respuestas incorrectas son espantosos)