Problema de No se puede establecer la configuración regional; ¡asegúrese de que $ LC_ * y $ LANG sean correctos!

49

Cuando siempre trato de instalar un nuevo paquete, recibo este mensaje:

Can't set locale; make sure $LC_* and $LANG are correct!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = (unset),
    LC_CTYPE = "en_GB.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_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Mi sistema operativo es Debian Jessie 8.3 (Mate) usando inglés con teclado francés. Cuando escribo locale, obtengo esto:

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
LANG=en_US.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE=en_GB.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Ismail Sensei
fuente

Respuestas:

62

Debian envía locales en forma de fuente. Deben compilarse explícitamente. La razón de esto es que las configuraciones regionales compiladas usan mucho más espacio en disco, pero la mayoría de las personas solo usan algunas.

Ejecútelo dpkg-reconfigure localescomo root, seleccione las configuraciones regionales que desee en la lista (con su configuración, necesita en_GBy en_US.UTF-8, recomiendo seleccionar en_USy en_GB.UTF-8también), luego presione <OK>.

Alternativamente, edite /etc/locale.gen, descomente las líneas de las configuraciones regionales que desee y ejecútelas locale-gencomo raíz.

(Nota: en Ubuntu, esto funciona de manera diferente: ejecute locale-gencon las configuraciones regionales que desea generar como argumentos, por ejemplo sudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8).

Alternativamente, Debian ahora tiene un paquete locales-allque puede instalar en lugar de locales. Tiene todas las configuraciones regionales pregeneradas. La desventaja es que utilizan más espacio en disco (112 MB frente a 16 MB).

Gilles 'SO- deja de ser malvado'
fuente
1
Funcionó, pero solo después de cerrar sesión y luego volver a iniciar sesión.
Forivin
¡Trabajó para mí también!
Jamie Ivanov
edición /etc/locale.gendoes't hizo el trabajo para mí (lo hizo de cierre de sesión / login), pero locale-genresuelto mi tmux: need UTF-8 locale (LC_CTYPE)problema deDebian 4.9.82
EAPO
2
@eapo Como digo en mi respuesta, necesitas editar /etc/locale.gen y luego ejecutar locale-gen.
Gilles 'SO- deja de ser malvado'
También me perdí un poco acerca de habilitar en_US.UTF-8y tu propia configuración regional. Descubrí el camino difícil y luego volví en círculo para dar mi propia respuesta antes de darme cuenta de que estaba aquí todo el tiempo.
Alastair McCormack
19

La solución mejor calificada no ayudó en mi caso, así que utilicé esta:

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

Después de eso, me desconecté e inicié sesión y faltaba el error.

ssasa
fuente
2
Se desaconseja el uso de LC_ALL, ya que anula todo. Úselo solo cuando realice pruebas y nunca lo configure en un archivo de inicio. según: wiki.debian.org/Locale
Pitone Maledetto
6

Estos comandos me salvaron la vida

# echo "LC_ALL=en_US.UTF-8" >> /etc/environment
# echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
# locale-gen en_US.UTF-8
Taras Vaskiv
fuente
6

Si tiene este problema en una frambuesa pi (u otra?) Y obtiene el error cuando ssh a la pi, hay otras 2 soluciones

Uno es editar /etc/ssh/sshd_configen el pi y comentar la línea

AcceptEnv LANG LC_*

por ejemplo sudo nano /etc/ssh/sshd_config

Después de lo cual debe reiniciar el servidor ssh

sudo systemctl restart ssh

El otro está en la máquina de su cliente ( no en el pi ) edite /etc/ssh/ssh_config(ruta diferente de la anterior) y comente la línea

SendEnv LANG LC_*
gman
fuente
Ambos no están comentados para mí, pero aún surge un problema. (RPi3, macOS10.14)
jorijnsmit
Comentado a cabo la línea ahora. Realmente no tengo la oportunidad de probar, pero suena más lógico de esta manera ... Gracias.
jorijnsmit
2

Debe instalar el paquete locales(o locales-allla configuración regional en_GB, según la versión de Debian que tenga).

Una solución para no tener este tipo de errores: set LANG=Cde raíz, por lo que utilizará no hay localidades.

Giacomo Catenazzi
fuente