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=

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).


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.


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

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_*

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.