Quando corro perl
, recebo o aviso:
perl: aviso: falha na configuração da localidade. perl: warning: verifique se suas configurações de localidade: LANGUAGE = (não definido), LC_ALL = (não definido), LANG = "pt_BR.UTF-8" são suportados e instalados no seu sistema. perl: warning: Voltando ao código do idioma padrão ("C").
Como faço para corrigir isso?
~/.pam_environment
Respostas:
Seu sistema operacional não conhece
en_US.UTF-8
.Você não mencionou uma plataforma específica, mas posso reproduzir seu problema:
Meu palpite é que você usou o ssh para conectar-se a esse host mais antigo a partir de uma máquina mais recente. É comum
/etc/ssh/sshd_config
conterque permite que os clientes propaguem os valores dessas variáveis de ambiente em novas sessões.
O aviso fornece uma dica sobre como esmagá-lo, se você não precisar do local completo:
ou com bash:
Para uma correção permanente, escolha uma das
LANG
variável de ambiente no arquivo de inicialização do seu shell.ssh hunter2
, use o comandoLANG=C ssh hunter2
.SendEnv LANG LC_*
linha no arquivo local/etc/ssh/ssh_config
. (Graças a esta resposta . Veja o Bug 1285 para OpenSSH para mais.)fonte
dpkg-reconfigure locales
a mensagem desapareceu.service ssh reload
que leva uma fração de segundo e nem faz com que a sessão atual do ssh seja encerrada.Veja como resolvê-lo no Mac OS Lion (10.7) ou Cygwin (Windows 10):
Adicione as seguintes linhas ao seu bashrc ou bash_profile na máquina host:
Se você estiver usando o zsh, edite o zshrc:
fonte
LC_ALL
sobrescreve todas as outras variáveis, prefiro definirLANG=de_AT.UTF-8
variáveis individuais comoLC_MESSAGES=en_US.UTF-8
. Se uma variável não estiver definida, ela retornará aLANG
. Você também pode, por exemplo.unset LC_CTYPE
para forçá-lo a voltar aLANG
.~/.bashrc
resolvido para mim ... então deve recarregar usandosource ~/.bashrc
... Thnks <3Se você estiver criando um rootfs usando o debootstrap, precisará gerar os códigos de idioma. Você pode fazer isso executando:
Esta dica vem de, https://help.ubuntu.com/community/Xen
fonte
Ubuntu Server
$ echo en_US UTF-8 >> /etc/locale.gen
primeiro.locale-gen
não aceita argumentos. Lê de/etc/locale.gen
.Usar:
Funciona para o Debian . Não sei por que - mas a locale-gen não teve resultados.
Importante! É uma solução temporária. Tem que ser executado para cada sessão.
fonte
.bashrc
arquivo.local-gen
apenas processa localidades não comentadas/etc/local.gen
. Você pode precisar fazerecho en_US UTF-8 >> /etc/locale.gen
primeiro.Isso geralmente significa que você não configurou corretamente os códigos de idioma na sua caixa Linux.
No Debian ou Ubuntu, isso significa que você precisa fazer
Veja também man locale-gen .
fonte
sudo locale-gen es_UY.UTF-8
Apenas para usuários do macOS e Mac OS X
Eu estava recebendo o mesmo aviso enquanto usava o Git
Para resolver este aviso Desmarque a
Set locale environment variable on startup
opção e reinicie o seu terminal. A captura de tela abaixo representa minhas configurações de terminal.fonte
É uma correção simples no Ubuntu. Você precisa gerar os códigos de idioma do zero, executando os seguintes comandos na linha de comando:
Isso deve criar os códigos de idioma e reconfigurá-los.
fonte
pt_BR pt_BR.UTF-8
- Obrigado.Adicionando o seguinte para
/etc/environment
corrigir o problema para mim no Debian e Ubuntu (é claro, modifique para corresponder ao local que você deseja usar):fonte
/etc/environment
está obsoleta e, em vez disso, deve ser configurada/etc/default/locale
. Ambos parecem funcionar por enquanto.LC_CTYPE
Agora estou usando isso:
Em seguida, efetue logout da sessão SSH e efetue login novamente.
Resposta antiga:
Só isso me ajudou:
fonte
no Debian depois de muita pesquisa, isso fez o truque.
primeiro:
então:
e os famosos:
Isso libera o sistema de códigos de idioma e, em seguida, reinstala os códigos de idioma e diminui a libc6 de 2.19 para 2.13, que é o problema. Em seguida, configura as localidades novamente.
fonte
dpkg-reconfigure locales
é tudo o que é necessário.sudo
se você é do tipo sudo, ou faça isso como root. Em seguida, selecione seu código do idioma de acordo com o que você possui em seu ambiente shell.Esta é uma resposta rápida. Definiremos localidades que não são definidas após a reinicialização. Primeiro abra o arquivo bash e edite-o:
adicione estas linhas ao arquivo:
ativar a alteração recarregando o bash:
Resultado dos testes :
fonte
Para o Ubuntu, use isso,
Trabalhou para mim.
fonte
/etc/default/locale
e colocando apenas a definição dos vars (removendo a palavra exportação) e reiniciar o servidorSe você usa o Mac OS X v10.10 (Yosemite) ou superior para conectar-se ao servidor Linux, pode tentar estas etapas.
Mantenha seu arquivo / etc / ssh / sshd-config original
Coloque no seu ~ / .bash_profile
Corre
E selecione "en_US.UTF-8"
fonte
Remova o comentário dos locais que você deseja usar (por exemplo
en_US.UTF-8 UTF-8
):Então corra:
Fonte: http://people.debian.org/~schultmc/locales.html
fonte
Você precisa locale configure apropriadamente em
/etc/default/locale
, logout, o login e execute os comandos regularesfonte
Solução:
Tente isso ( uk_UA.UTF-8 é meu local atual. Escreva seu local, por exemplo en_US.UTF-8 !)
e isto.
fonte
para mim, eu corrijo esse erro ao editar o arquivo .bashrc e adicionar exportação. Adicionar após comentários iniciais.
Adicione suporte ao idioma.
Kind Regads,
fonte
Adicionando o local correto
~/.bashrc
,~/.bash_profile
,/etc/environment
e assim por diante vai resolver o problema, no entanto, não é recomendado, uma vez que substitui as configurações de/etc/default/locale
, que é confuso na melhor das hipóteses e pode levar a localidades não ser aplicadas de forma consistente na pior das hipóteses.Em vez disso, deve-se editar
/etc/default/locale
diretamente, que pode ser algo como isto:A alteração entrará em vigor na próxima vez que você efetuar login. Você pode obter o novo código do idioma em um shell existente, fornecendo o
/etc/default/locale
seguinte:fonte
locale-gen
Para qualquer pessoa que esteja se conectando ao DigitalOcean ou a outro provedor de hospedagem em nuvem do iTerm2.app no MacOS High Sierra e recebendo este erro em alguns comandos:
Isso corrigiu o problema para mim:
Eu sei que esta discussão é antiga, mas talvez alguém ache isso útil. Eu sei como isso pode ser irritante.
fonte
Após a resposta aceita:
LC_ALL = C ssh hunter2
do lado do cliente fez o truque para mim.
fonte
Com o zsh ohmyzsh, adicionei isso ao
.zshrc
:Removendo a linha
export LANG=en_US.UTF-8
Reabriu uma nova guia e SSHed, trabalhou para mim :)
fonte
Adicionar
LC_ALL="en_GB.utf8"
a/etc/environment
e reinicie. Isso é tudo.fonte
Como sempre, o diabo está nos detalhes ...
No Mac OS X 10.7.5 (Lion), para corrigir algum erro do Django , no meu
~/.bash_profile
conjunto:Por um longo tempo, recebi esse aviso ao usar Perl.
Foi mal! Como percebi muito mais tarde, meu sistema é
en_US.UTF-8
! Corrigi-o simplesmente mudando depara
fonte
Se você não se importa com o problema da localidade, pode definir
PERL_BADLANG=0
. Obviamente, isso pode resultar em localização incorreta.fonte
Todas as respostas anteriores estão erradas. A mensagem é clara - falta de localidade. A solução é adicionar o código do idioma apropriado. Você faz isso editando o arquivo /etc/locale.gen, remova o sinal # na frente do código do idioma que está sendo relatado como ausente e, em seguida, emitindo o comando:
Na verdade, isso irá gerar os códigos de idioma especificados em /etc/locale.gen e, portanto, a mensagem não será mostrada.
fonte
no meu caso, com o debian8.6, tive que alterar as configurações em:
/etc/ssh/ssh_config
para#AcceptEnv LANG LC_*
e
sshd_config
para#SendEnv LANG LC_*
em seguida, reinicie o serviço ssh.
enfim, fez
locale-gen en_US.UTF-8
edpkg-reconfigure locales
fonte
Adicionar localidades ausentes ao .bash_profile
Em seguida, forneça seu .bash_profile
fonte
No meu caso, esta foi a saída:
A solução foi:
fonte
ssh
sobrescreve variáveis de localidade LC por padrão. Veja/etc/ssh/sshd_config
:Então, talvez você precise definir essas variáveis no shell local.
fonte
Para mim, no Ubuntu 16.04 (Xenial Xerus), funcionou o seguinte:
Então reinicie ...
fonte