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
laen_US.utf8
regionalen_US.utf8
queperl
esperaba encontrar y ejecutandolocal-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.
Mantenga su archivo / etc / ssh / sshd-config original
Ponte tu ~ / .bash_profile
export LANG="en_US" export LC_ALL=$LANG.UTF-8
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
- En el host anterior, configure la variable de entorno
LANG
en el archivo de inicialización de su shell. - Modifique su entorno en el lado del cliente, por ejemplo , en lugar de
ssh hunter2
, use el comandoLANG=C ssh hunter2
. - Si tiene derechos de administrador,
SendEnv LANG LC_*
ssh envíe las variables de entorno comentando la líneaSendEnv 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
sudo nano /etc/locale.gen
Descomente las configuraciones regionales que desea usar (por ejemplo, en_US.UTF-8 UTF-8
):
Entonces corre:
sudo /usr/sbin/locale-gen