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

32

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 o inglês com o teclado francês. Quando eu digito locale, eu entendo isso:

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=
    
por Ismail Sensei 11.03.2016 / 14:27

5 respostas

43

O Debian envia localidades no formato de origem. 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 locales como root, selecione as localidades que você deseja na lista (com suas configurações, você precisa de en_GB e en_US.UTF-8 - eu recomendo selecionar en_US e en_GB.UTF-8 ) e depois pressione <OK> .

Como alternativa, edite /etc/locale.gen , descomente as linhas das localidades desejadas e execute locale-gen como raiz.

(Nota: no Ubuntu, isso funciona de forma diferente: execute locale-gen com 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 .)

Alternativamente, o Debian agora tem um pacote locales-all que você pode instalar ao invés de locales . Tem todas as localidades pré-geradas. A desvantagem é que eles usam mais espaço em disco (112MB vs 16MB).

    
por 12.03.2016 / 02:27
14

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

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

Depois disso, eu fiz o logout e fiz o login e o erro estava faltando.

    
por 23.03.2017 / 09:22
2

Você precisa instalar o pacote locales (ou locales-all ou o código do idioma en_GB, dependendo da versão Debian que você possui).

Uma solução alternativa para não ter tais erros: defina LANG=C como raiz, para que ele não use nenhuma localidade.

    
por 11.03.2016 / 14:33
1

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
    
por 18.03.2018 / 20:46
1

Se você está tendo este problema em um pi de framboesa (ou outro?) e você está recebendo o erro quando você ssh para o pi existem duas outras soluções

Um é editar /etc/ssh/sshd_config no pi e comentar a linha

AcceptEnv LANG LC_*

por exemplo, sudo nano /etc/ssh/sshd_config

Depois do qual você deve reiniciar o servidor ssh

sudo systemctl restart ssh

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

SendEnv LANG LC_*
    
por 24.08.2018 / 06:32

Tags