Centos 5.8 aviso de local

3

Um amigo está rodando o CentOS 5.8 em seu servidor. É um erro quase inofensivo, mas estou cansado de ver isso. Eu estou mais familiarizado com o debian, então não sei como gerar ou reconfigurar locales. Os binários usuais (locale-gen, dpkg, etc.) estou acostumado a não estar neste 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.

Tudo parece bem com as localidades.

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

E é uma localidade suportada.

[root@localhost]# locale -a | grep en_US
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
    
por Poe 16.10.2012 / 02:05

3 respostas

4

Quais são os conteúdos de /etc/sysconfig/i18n ?

Eu normalmente configuro todos os meus servidores para LANG="C" nesse arquivo. Faz parte do meu script de construção, mas me ajudou a evitar problemas de terminal e emulação ao longo dos anos. Vou atualizar isso com a explicação real depois.

# / etc / sysconfig / i18n

LANG="C"
SYSFONT="latarcyrheb-sun16"
    
por 12.12.2012 / 14:58
4

O problema aqui é que você usa uma configuração diferente de localidade em seu sistema pessoal, do que está instalado no servidor para o qual você foissh.

Seu sistema local usa en_GB enquanto o sistema remoto usa en_US.utf8 . (Ou eu poderia ter estes invertidos ... de qualquer forma, eles não combinam.)

Portanto, quando você ssh para o sistema, suas configurações de localidade são repassadas, mas o sistema remoto não tem localidades instaladas para manipular o idioma en_GB , então ele volta para a C locale. / p>

Você pode resolver isso de uma das três maneiras:

  1. Altere seu sistema local para en_US.utf8 . Eu vejo na sua outra pergunta que isso é o que você fez (devido a ssh do Mac OS X ser um pouco estranho com locales).
  2. Instale as en_GB locales no sistema remoto. Nos sistemas derivados do Red Hat 5, você instala o pacote apropriado grupo . Nos sistemas derivados do Red Hat 6, todos os idiomas suportados são sempre instalados por padrão (embora certos pacotes tenham seus próprios pacotes de idiomas que também devem ser instalados).
  3. Como o erro é (neste caso) completamente inofensivo, ignore-o.
por 27.08.2013 / 16:03
1

Isso parece um problema de perl. Versões mais recentes do perl não têm esse problema. Veja a saída do meu 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").

Isto é perl, v5.8.6 construído para x86_64-linux-thread-multi

Veja agora esta saída:

$ 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 o perl 5.8.6 não gosta da saída UTF-8? A configuração LC_ALL = C livrou-se do aviso.

Instalei outra versão do perl (5.18) e que funciona com a configuração UTF-8 sem nenhum aviso.

    
por 27.08.2014 / 19:18