Cómo solucionar una advertencia de configuración regional de Perl

Resuelto xain asked hace 14 años • 48 respuestas

Cuando ejecuto perl, aparece la advertencia:

perl: advertencia: Error al configurar la configuración regional.
perl: advertencia: verifique que su configuración regional:
    IDIOMA = (desarmado),
    LC_ALL = (desarmado),
    IDIOMA = "en_US.UTF-8"
son compatibles e instalados en su sistema.
perl: advertencia: volver a la configuración regional estándar ("C").

¿Cómo lo soluciono?

xain avatar Mar 23 '10 19:03 xain
Aceptado

A continuación se explica cómo solucionarlo en Mac OS X v10.7 (Lion) o Cygwin (Windows 10):

Agregue las siguientes líneas a su archivo 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 Z Shell (zsh), edite el archivo zshrc :

# Setting for the new UTF-8 terminal support in Lion
LC_CTYPE=en_US.UTF-8
LC_ALL=en_US.UTF-8
Allen Bargi avatar Sep 14 '2011 09:09 Allen Bargi

Su sistema operativo no lo sabe en_US.UTF-8.

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

% uname -a
OSF1 hunter2 V5.1 2650 alfa
% perl -e salir
perl: advertencia: Error al configurar la configuración regional.
perl: advertencia: verifique que su configuración regional:
    LC_ALL = (desarmado),
    IDIOMA = "en_US.UTF-8"
    son compatibles e instalados en su sistema.
perl: advertencia: volver a la configuración regional estándar ("C").

Supongo que usaste ssh para conectarte a este host más antiguo desde una máquina de escritorio más nueva. Es común que /etc/ssh/sshd_configcontenga

AcceptEnv LANG LC_*

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

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

% env LANG=C perl -e salida
%

o con Bash:

$ LANG=C perl -e salir
ps

Para una solución permanente, elija uno de

  1. En el host anterior, configure la LANGvariable de entorno en el archivo de inicialización de su shell.
  2. Modifique su entorno en el lado del cliente, por ejemplo , en lugar de ssh hunter2utilizar el comando LANG=C ssh hunter2.
  3. Si tiene derechos de administrador, evite que ssh envíe las variables de entorno comentando la SendEnv LANG LC_*línea en el archivo local /etc/ssh/ssh_config . (Gracias a esta respuesta . Consulte el error 1285 para OpenSSH para obtener más información).
Greg Bacon avatar Mar 24 '2010 18:03 Greg Bacon

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

Este consejo proviene de https://help.ubuntu.com/community/Xen

Marc avatar Mar 15 '2012 20:03 Marc