Por que obtenho "Falha ao definir o código de idioma, por padrão em C" ao usar o yum?

21

Toda vez que corro yum installou yum updaterecebo

Falha ao definir o código de idioma, com o padrão C

e depois outras informações.

Como evitar esse aviso?

Pops
fonte

Respostas:

19

Coloquei a seguinte configuração de localidade relacionada em /etc/bashrc(para todos os usuários bash):

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_COLLATE=C
export LC_CTYPE=en_US.UTF-8

então corra:

source /etc/bashrc

ou faça logoff e logon.

Oh Ho
fonte
2
Provavelmente, isso deve entrar /etc/profile.d/lang.she não para o /etc/bashrcqual provavelmente será substituído por uma atualização.
Ccpizza
@ccpizza Coloquei essas linhas na parte inferior lang.she funcionou 👍.
Andrew Keeton
6

Corre

yum reinstall glibc-common

e verifique se nenhum processo está excluindo os arquivos /usr/lib/locale/locale-archive.*.

ZaSter
fonte
1
Tentei fazer isso primeiro e ajuda para mim (não verificado o processo)
cro
Isso não funciona para mim.
Angelo #
3
Nas novas distribuições Linux baseadas no Red Hat (Fedora 24+, RHEL 8+), isso será glibc-langpack-<language>, por exemplo glibc-langpack-en.
Michael Hampton
Na imagem do Centos Docker, há um bug relatado: bugzilla.redhat.com/show_bug.cgi?id=1392855
Rowinson Gallego
2

Podes tentar

export LANG=en_US

Ou defina-o como algo semelhante. Se isso resolver o problema para você, você poderá persistir modificando o perfil do bash.

OldWolf
fonte
Isso não funcionou para mim. Qualquer outra sugestão #
ctilley79 12/12/12
2

Eu estava recebendo o mesmo erro no MacOS. Quando você ssh para uma caixa Linux, eles se recusam a configurar um UTF-8código de idioma. Você pode ver as diferenças na configuração da localidade executando o localecomando no seu terminal MacOS e na caixa Linux.

Para corrigir este erro, abra o terminal -> preferências -> perfis -> Avançado e desabilitado Set locale environment variables on startupno seu mac.

Agora, quando você executa localeno mac. você pode ver que essa mudança definiu o LC_CTYPE="C"que eraLC_CTYPE="UTF-8" com a configuração anterior.

você terá que fechar seu terminal para ter esse efeito e agora faça login na sua caixa Linux e execute yum update.

Espero que ajude :)

Tarun Vashisth
fonte
2

Se você usou o SSH para conectar-se a este host a partir de uma máquina desktop, é comum /etc/ssh/sshd_configconter

AcceptEnv LANG LC_*

que permite que os clientes propaguem os valores dessas variáveis ​​de ambiente em novas sessões. No entanto, isso fará com que as variáveis ​​de localidade sejam configuradas novamente para esvaziar dentro da sua sessão SSH no servidor que você está configurando, se o local não for o primeiro configurado corretamente NA SUA MÁQUINA DE DESKTOP .

Consertar:

Por exemplo, na janela do Windows 10 Ubuntu Shell, faça primeiro ( NOTA: altere todas as entradas abaixo para corresponder ao seu código do idioma se não for "en_US.UTF-8" ):

sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales

Em seguida, feche a janela do shell do Ubuntu e reabra e, em seguida, SSH no servidor que você está tentando configurar e veja se está tudo bem agora ...

Caso contrário, faça o SSH no seu servidor e faça:

vi /etc/profile.d/custom.lang.sh

Em seguida, pressione Ipara entrar no modo "inserir". Em seguida, cole as entradas abaixo. Em seguida, ZZpara salvar e sair:

## US English ##
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8

Em seguida, execute o seguinte:

source /etc/profile.d/lang.sh
source /etc/profile.d/custom.lang.sh

Então:

reboot

Veja se isso faz com que tudo pare de reclamar dos vars de localidade!

FirstFraktal
fonte