your warning that remote reconfigure please mac locales lc_all gen failed error check perl locale

perl - warning - sudo dpkg reconfigure locales



¿Cómo corregir una advertencia de configuración regional de Perl? (30)

Solo para usuarios de macOS y Mac OS X

Estaba recibiendo la misma advertencia mientras utilizaba Git

Para resolver esta advertencia Desactive la opción Set locale environment variable on startup y reinicie su terminal. La siguiente captura de pantalla representa mi configuración de terminal.

Cuando corro perl , me sale la advertencia:

perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").

¿Cómo lo arreglo?


Agregar la configuración regional correcta a ~/.bashrc , ~/.bash_profile , /etc/environment y similares resolverá el problema, sin embargo, no se recomienda, ya que anula la configuración de /etc/default/locale , que es confuso en mejor y puede hacer que los locales no se apliquen de manera consistente en el peor.

En su lugar, uno debería editar /etc/default/locale directamente, que puede parecer algo como esto:

LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_CTYPE=en_US


Agregar las configuraciones regionales faltantes a .bash_profile

echo "export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8">>~/.bash_profile

Entonces fuente tu .bash_profile

source ~/.bash_profile


Agregar lo siguiente a /etc/environment solucionó el problema para mí en Debian y Ubuntu (por supuesto, modifíquelo para que coincida con la configuración regional que desea usar):

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


Agregue LC_ALL="en_GB.utf8" a /etc/environment y reinicie. Eso es todo.


Ahora estoy usando esto:

$ cat /etc/environment ... LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

Luego salga de la sesión SSH y vuelva a iniciar sesión.

Respuesta antigua:

Solo esto me ayudó

$ locale locale: Cannot set LC_ALL to default locale: No such file or directory LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=ru_RU.UTF-8 LC_TIME=ru_RU.UTF-8 LC_COLLATE="en_US.UTF-8" LC_MONETARY=ru_RU.UTF-8 LC_MESSAGES="en_US.UTF-8" LC_PAPER=ru_RU.UTF-8 LC_NAME=ru_RU.UTF-8 LC_ADDRESS=ru_RU.UTF-8 LC_TELEPHONE=ru_RU.UTF-8 LC_MEASUREMENT=ru_RU.UTF-8 LC_IDENTIFICATION=ru_RU.UTF-8 LC_ALL= $ sudo su # export LANGUAGE=en_US.UTF-8 # export LANG=en_US.UTF-8 # export LC_ALL=en_US.UTF-8 # locale-gen en_US.UTF-8 Generating locales... en_US.UTF-8... up-to-date Generation complete. # dpkg-reconfigure locales Generating locales... en_AG.UTF-8... done en_AU.UTF-8... done en_BW.UTF-8... done en_CA.UTF-8... done en_DK.UTF-8... done en_GB.UTF-8... done en_HK.UTF-8... done en_IE.UTF-8... done en_IN.UTF-8... done en_NG.UTF-8... done en_NZ.UTF-8... done en_PH.UTF-8... done en_SG.UTF-8... done en_US.UTF-8... up-to-date en_ZA.UTF-8... done en_ZM.UTF-8... done en_ZW.UTF-8... done Generation complete. # exit $ locale LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_CTYPE="en_US.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=en_US.UTF-8


Aquí está cómo resolverlo en Mac OS Lion (10.7) o Cygwin (Windows 10):

Agregue las siguientes líneas a su bashrc o bash_profile en la máquina host:

# Setting for the new UTF-8 terminal support in Lion export LC_CTYPE=en_US.UTF-8 export LC_ALL=en_US.UTF-8

Si está utilizando zsh, edite zshrc:

# Setting for the new UTF-8 terminal support in Lion LC_CTYPE=en_US.UTF-8 LC_ALL=en_US.UTF-8


Como siempre, el diablo está en el detalle ...

En Mac OS X v10.7.5 (Lion), para corregir un error de Django , en mi ~/.bash_profile he establecido:

export LANG=en_EN.UTF-8 export LC_COLLATE=$LANG export LC_CTYPE=$LANG export LC_MESSAGES=$LANG export LC_MONETARY=$LANG export LC_NUMERIC=$LANG export LC_TIME=$LANG export LC_ALL=$LANG

Y a su vez durante mucho tiempo recibí esa advertencia al usar Perl.

¡Mi error! Como me di cuenta mucho más tarde, mi sistema es en_US.UTF-8 ! Lo arreglé simplemente cambiando de

export LANG=en_EN.UTF-8

a

export LANG=en_US.UTF-8


Con zsh ohmyzsh agregué esto a .zshrc :

# You may need to manually set your language environment LANGUAGE=en_US.UTF-8 LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LC_ALL=en_US.UTF-8

Al eliminar la línea de export LANG=en_US.UTF-8

Reabrió una nueva pestaña y SSHed, trabajó para mí :)


Debe configurar la configuración regional de manera apropiada en /etc/default/locale , cerrar sesión, iniciar sesión y luego ejecutar los comandos regulares

root@host:~# echo -e ''LANG=en_US.UTF-8/nLC_ALL=en_US.UTF-8'' > /etc/default/locale root@host:~# exit local-user@local:~$ ssh root@host root@host:~# locale-gen en_US.UTF-8 root@host:~# dpkg-reconfigure locales


En Arch Linux usando un teclado / locale del Reino Unido tuve el siguiente error:

perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US.utf8"

  • Exportar mis locales en /etc/profile no lo solucionó.

  • Sin embargo, solucioné esto editando /etc/locale.gen y también habilitando
    la en_US.utf8 regional en_US.utf8 que perl esperaba encontrar y ejecutando local-gen .

(Uso pac-manager que usa un montón de módulos de perl de AUR, por lo que volver a instalar perl en mi caso particular sería una molestia)


En mi caso, con debian8.6, tuve que cambiar la configuración en:

/etc/ssh/ssh_config para #AcceptEnv LANG LC_*

y sshd_config para #SendEnv LANG LC_*

luego reinicie el servicio ssh.

al fin hizo

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


En mi caso, esta fue la salida:

LANGUAGE = (unset), LC_ALL = (unset), LC_PAPER = "ro_RO.UTF-8", LC_ADDRESS = "ro_RO.UTF-8", ....

La solución fue:

sudo locale-gen ro_RO.UTF-8


Es una solución simple en Ubuntu. Debe generar los Locales desde cero, ejecutando los siguientes comandos desde la línea de comandos:

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

Esto debería crear las configuraciones regionales y luego volver a configurarlas.


Esto generalmente significa que no ha configurado correctamente las configuraciones regionales en su caja de Linux.

En Debian o Ubuntu, eso significa que necesitas hacer

$ sudo locale-gen $ sudo dpkg-reconfigure locales

Véase también man locale-gen .


Para Ubuntu usa esto,

#export LANGUAGE=en_US.UTF-8 #export LC_ALL=en_US.UTF-8 #export LANG=en_US.UTF-8 #export LC_TYPE=en_US.UTF-8

Trabajó para mi.


Para cualquier persona que se conecte a DigitalOcean o algún otro proveedor de alojamiento en la nube desde iTerm2.app en MacOS High Sierra y obtenga este error en algunos comandos:

perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "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 solucionó el problema para mí:

Sé que este hilo es antiguo, pero tal vez alguien lo encuentre útil. Sé lo molesto que puede ser esto.


Para mí, en Ubuntu 16.04 (Xenial Xerus) funcionó lo siguiente:

root@host:~#locale-gen en_GB.UTF-8 root@host:~#localectl set-locale LANG=en_GB.UTF-8,LC_ALL=en_GB.UTF-8

Luego reinicie ...


Para mí, soluciono este error al editar el archivo .bashrc agregar exportación. Añadir después de los comentarios iniciales.

Añadir soporte de idioma.

export LANGUAGE=en_US.UTF-8 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_TYPE=en_US.UTF-8

Regads amable,


Si está creando un rootfs usando debootstrap, necesitará generar las configuraciones regionales. Puedes hacer esto ejecutando:

# (optional) enable missing locales sudo nano /etc/locale.gen # then regenerate sudo locale-gen

Esta sugerencia proviene de https://help.ubuntu.com/community/Xen


Si no le importa el problema de la configuración regional, puede establecer PERL_BADLANG=0 . Por supuesto, esto podría resultar en una localización incorrecta.


Si usa Mac OS X v10.10 (Yosemite) o superior para conectarse a su servidor Linux, puede seguir estos pasos.

  1. Mantenga su archivo / etc / ssh / sshd-config original

  2. Ponte tu ~ / .bash_profile

    export LANG="en_US" export LC_ALL=$LANG.UTF-8

  3. correr

    dpkg-reconfigure locales

    Y seleccione "en_US.UTF-8"


Siguiendo la respuesta aceptada:

LANG = C ssh hunter2.

LC_ALL = C ssh hunter2

en el lado del cliente hizo el truco para mí.


Su sistema operativo no sabe acerca de en_US.UTF-8 .

No mencionaste una plataforma específica, pero puedo reproducir tu problema:

% uname -a OSF1 hunter2 V5.1 2650 alpha % perl -e exit perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").

Supongo que usó ssh para conectarse a este host más antiguo desde una máquina de escritorio más nueva. Es común que /etc/ssh/sshd_config contenga

AcceptEnv LANG LC_*

que permite a los clientes propagar en nuevas sesiones los valores de esas variables de entorno.

La advertencia le da una pista sobre cómo silenciarla si no necesita la configuración regional completa:

% env LANG=C perl -e exit %

o con el bash:

$ LANG=C perl -e exit $

Para una solución permanente, elija una de

  1. En el host anterior, configure la variable de entorno LANG en el archivo de inicialización de su shell.
  2. Modifique su entorno en el lado del cliente, por ejemplo , en lugar de ssh hunter2 , use el comando LANG=C ssh hunter2 .
  3. Si tiene derechos de administrador, SendEnv LANG LC_* ssh envíe las variables de entorno comentando la línea SendEnv LANG LC_* en el /etc/ssh/ssh_config . (Gracias a esta respuesta . Ver Bug 1285 para OpenSSH para más información).

Todas las respuestas anteriores son incorrectas. El mensaje es claro: falta la configuración regional. La solución es agregar el local apropiado. Para hacerlo, edite el archivo /etc/locale.gen, elimine el signo # que se encuentra delante de la configuración regional que se informa que falta y luego ejecute el comando:

$ sudo locale-gen

Esto generará los locales especificados en /etc/locale.gen y, por lo tanto, el mensaje no se mostrará.


Utilizar:

export LANGUAGE=en_US.UTF-8 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_TYPE=en_US.UTF-8

Funciona para Debian . No sé por qué, pero locale-gen no tuvo resultados.

¡Importante! Es una solución temporal. Tiene que ser ejecutado para cada sesión.


en Debian después de mucho buscar esto hizo el truco.

primero:

sudo apt-get purge locales

entonces:

sudo aptitude install locales

y el famoso:

sudo dpkg-reconfigure locales

Esto elimina el sistema de locales, luego vuelve a instalar locales y baja de libc6 de 2.19 a 2.13, que es el problema. Luego vuelve a configurar los locales.


ssh sobrescribe las variables de la configuración regional LC de forma predeterminada. Ver /etc/ssh/sshd_config :

AcceptEnv LANG LC_*

Tal vez necesite establecer estas variables en su shell local.


perl: warning: Falling back to the standard locale ("C"). locale: Cannot set LC_ALL to default locale: No such file or directory

Solución:

Intente esto ( uk_UA.UTF-8 es mi configuración regional actual. Escriba su configuración regional, por ejemplo, en_US.UTF-8 !)

sudo locale-gen uk_UA.UTF-8

y esto.

sudo dpkg-reconfigure locales