Advertencia de configuración regional de Centos 5.8

Advertencia de configuración regional de Centos 5.8

Un amigo ejecuta CentOS 5.8 en su servidor. Es un error mayoritariamente inofensivo pero estoy cansado de verlo. Estoy más familiarizado con Debian, por lo que no estoy seguro de cómo generar o reconfigurar configuraciones regionales. Los archivos binarios habituales (locale-gen, dpkg, etc.) a los que estoy acostumbrado no están en este servidor.

[root@localhost]# git pull origin master
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = "en_US.utf8",
    LANG = "en_GB"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
From git.com:www
 * branch            master     -> FETCH_HEAD
Already up-to-date.

Todo parece estar bien con los locales.

LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8

Y es una ubicación compatible.

[root@localhost]# locale -a | grep en_US
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8

Respuesta1

¿Cuáles son los contenidos de /etc/sysconfig/i18n?

Normalmente configuro todos mis servidores LANG="C"en ese archivo. Es parte de mi script de compilación, pero me ha ayudado a evitar problemas de terminal y emulación a lo largo de los años. Actualizaré esto con la explicación real más tarde.

# /etc/sysconfig/i18n

LANG="C"
SYSFONT="latarcyrheb-sun16"

Respuesta2

El problema aquí es que utiliza una configuración regional diferente en su sistema personal que la instalada en el servidor al sshque escribe.

Su sistema local usa en_GBmientras el sistema remoto usa en_US.utf8. (O podría invertirlos... de cualquier manera, no coinciden).

Entonces, cuando ingresa sshal sistema, su configuración regional se transmite, pero el sistema remoto no tiene configuraciones regionales instaladas para manejar el en_GBidioma, por lo que vuelve a la Cconfiguración regional.

Puedes resolver esto de una de tres maneras:

  1. Cambie su sistema local a en_US.utf8. veo entu otra preguntaque esto es lo que hiciste (debido a que Mac OS X es sshun poco raro con las configuraciones regionales).
  2. Instale las en_GBconfiguraciones regionales en el sistema remoto. En los sistemas derivados de Red Hat 5, ustedinstalar el grupo de paquetes apropiado. En los sistemas derivados de Red Hat 6, todos los idiomas admitidos siempre se instalan de forma predeterminada (aunque ciertos paquetes tienen sus propios paquetes de idiomas que también deben instalarse).
  3. Dado que el error es (en este caso) completamente inofensivo, ignórelo.

Respuesta3

Esto parece un problema de Perl. Las versiones más nuevas de Perl no tienen este problema. Ver el resultado de mi sistema:

$ perl -v

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

Esto es Perl, v5.8.6 creado para x86_64-linux-thread-multi

Ahora vea este resultado:

$ LC_ALL=C perl -v

This is perl, v5.8.6 built for x86_64-linux-thread-multi

Copyright 1987-2004, Larry Wall

¿Parece que a Perl 5.8.6 no le gusta la salida UTF-8? La configuración LC_ALL=C eliminó la advertencia.

Instalé otra versión de Perl (5.18) y funciona con la configuración UTF-8 sin previo aviso.

información relacionada