Problema de Não é possível definir a localidade; verifique se $ LC_ * e $ LANG estão corretos!

49

Quando tento sempre instalar um novo pacote, recebo esta mensagem:

Can't set locale; make sure $LC_* and $LANG are correct!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = (unset),
    LC_CTYPE = "en_GB.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Meu sistema operacional é o Debian Jessie 8.3 (Mate) usando inglês com teclado francês. Quando digito locale, recebo o seguinte:

locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE=en_GB.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=
Ismail Sensei
fonte

Respostas:

62

O Debian envia localidades na forma de código-fonte. Eles precisam ser compilados explicitamente. A razão para isso é que os locais compilados usam muito mais espaço em disco, mas a maioria das pessoas usa apenas alguns deles.

Execute dpkg-reconfigure localescomo root, selecione os locais que deseja na lista (com suas configurações, você precisa en_GBe en_US.UTF-8- eu recomendo selecionar en_USe en_GB.UTF-8também) e pressione <OK>.

Como alternativa, edite /etc/locale.gen, remova o comentário das linhas dos códigos de idioma desejados e execute locale-gencomo root.

(Nota: no Ubuntu, isso funciona de maneira diferente: execute locale-gencom as localidades que você deseja gerar como argumentos, por exemplo sudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8.)

Como alternativa, o Debian agora tem um pacote locales-allque você pode instalar em vez de locales. Tem todos os locais pré-gerados. A desvantagem é que eles usam mais espaço em disco (112 MB vs 16 MB).

Gilles 'SO- parar de ser mau'
fonte
1
Funcionou, mas somente depois que eu saí e depois entrei novamente.
Forivin
Trabalhou para mim também!
Jamie Ivanov
editar /etc/locale.gendoes't fez o trabalho para mim (fez o logout / login), mas locale-genresolveu o meu tmux: need UTF-8 locale (LC_CTYPE)problema emDebian 4.9.82
DEAC
2
@eapo Como afirmo na minha resposta, você precisa editar /etc/locale.gen e depois executar locale-gen.
Gilles 'SO- stop be evil'
Perdi um pouco a possibilidade de ativar en_US.UTF-8e o seu próprio local. Eu descobri da maneira mais difícil e circulei de volta aqui para dar minha própria resposta antes de perceber que ela estava aqui o tempo todo.
Alastair McCormack
19

A solução mais votada não ajudou no meu caso, então usei esta:

export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales

Depois disso, efetuei logout e logon e faltava um erro.

ssasa
fonte
2
Usar LC_ALL é altamente desencorajado, pois substitui tudo. Use-o apenas durante o teste e nunca o configure em um arquivo de inicialização. Como por: wiki.debian.org/Locale
Pitone Maledetto
6

Esses comandos salvaram minha vida

# echo "LC_ALL=en_US.UTF-8" >> /etc/environment
# echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
# locale-gen en_US.UTF-8
Taras Vaskiv
fonte
6

Se você está enfrentando esse problema em um raspberry pi (ou outro?) E está recebendo o erro ao enviar ssh para o pi, existem 2 outras soluções

Um é editar /etc/ssh/sshd_configno pi e comentar a linha

AcceptEnv LANG LC_*

por exemplo sudo nano /etc/ssh/sshd_config

Após o qual você deve reiniciar o servidor ssh

sudo systemctl restart ssh

O outro está na máquina do cliente ( não no pi ) edite /etc/ssh/ssh_config(caminho diferente do acima) e comente a linha

SendEnv LANG LC_*
gman
fonte
Ambos são descomentados para mim, mas o problema ainda surge. (RPi3, macOS10.14)
jorijnsmit
Comentou fora da linha agora. Realmente não tenho a oportunidade de testar, mas parece mais lógico dessa maneira ... Obrigado.
jorijnsmit
2

Você precisa instalar o pacote locales(ou locales-alla localidade en_GB, dependendo da versão do Debian que você possui).

Uma solução alternativa para não ter esses erros: definir LANG=Ca raiz, para que ele usará localidades.

Giacomo Catenazzi
fonte