`Gtk-WARNING **: localidade não suportada pela biblioteca C. `ao iniciar aplicativos a partir da linha de comando

31

Não recebi uma resposta, mas não estava fazendo nada e este é um tópico interessante. No Ubuntu 12.04, ao abrir um arquivo no gedit ou se estou trabalhando na linha de comando no dpkg, recebo o erro "localidade não suportada, retornando às bibliotecas" C "padrão" e a abaixo,

Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.
Diogenes Lantern
fonte
Seus códigos de idioma parecem estar corrompidos. Como você instalou o Ubuntu exatamente? Parece que você o instalou de uma maneira que as localidades não estão configuradas corretamente. Forneça mais informações sobre isso na sua pergunta (edite-a). E não, o Clocal é o local para o qual recai se não houver localização disponível. É da linguagem de programação C.
gertvdijk
Obrigado pela resposta. Minha instalação do Ubuntu é uma pasta dentro do diretório do Windows. Eu sei porque eu instalei lá. Eu estava com preguiça de instalar e permiti que o demônio Linux fizesse essa parte por mim.
Diogenes Lantern

Respostas:

30

Primeiro, verifique se o idioma da sua biblioteca está instalado

sudo apt-get install language-pack-en-base,

por exemplo.

Em seguida, como superusuário, reduza o trabalho permitindo que o Ubuntu os configure automaticamente:

sudo dpkg-reconfigure locales

Verifique sua configuração, se estiver correta, então boa. Mas se você tiver as configurações LANG=ou em LANGUAGE=branco, execute isso na linha de comando:

locale -a

O que gera os códigos de idioma instalados e disponíveis para você.

Escolha o código de idioma da saída gerada que se adapta à sua situação e exporte essa configuração para substituir seus códigos de idioma, por exemplo:

export LC_ALL="en.utf-8"

Para a instalação manual, use exporta configuração local manualmente, instalando manualmente localizações personalizadas, primeiro execute a configuração como acima.

Em seguida, diga que deseja instalar "en_us-8"para o idioma, mas precisa de outro código de idioma para NUMERICe TIME, você pode usar "en_NZ.utf-8"(lembre-se: eles diferenciam maiúsculas de minúsculas) ou LANGUAGE="en_GB.utf-8"e NUMERIC="en.dk.ISO-8859-15". Viajando para a Nova Zelândia, eu poderia mudar o local LANGUAGE="en.NZ". Para a Alemanha, eu precisaria apenas instalar o local pkg para ele e inserir, no terminal, como os exemplos abaixo:

export LC_ALL="en_US"
export LANG="en_US"
export LANGUAGE="en_NZ"
export C_CTYPE="en_US"
export LC_NUMERIC=
export LC_TIME=en"en_US"

LC_ALL= pode permanecer vazio.

Diogenes Lantern
fonte
3

primeiro:

sudo apt-get purge locales

então:

sudo aptitude install locales

e os famosos:

sudo dpkg-reconfigure locales

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.

tkjef
fonte
1
Isso é muito, muito enganador. Nunca use esta resposta, o primeiro comando lançará muito software junto com seus dados, por exemplo postgresql.
Eric Wang
@ EricWang, você está certo de que pode deixar cair outro software, e isso acontecerá porque esse software depende da biblioteca libc6 2.19 (ou algo mais alto). Muitas vezes, esse software foi o que atualizou seu sistema e o colocou neste estado de localidades não suportadas pela biblioteca C. Independentemente disso, você deve revisar o que está sendo removido antes de confirmar.
Tkjef 31/12/16
3

Isso me ocorreu mais de uma vez, no meu mint mate 18, que é baseado no Ubuntu 16.04, então eu gostaria de compartilhar a solução que encontrei, caso alguém precise.

Passos:

(Essas etapas funcionam para o mint mate, mas o Ubuntu pode ter configurações semelhantes, não tenho certeza)

  • Abra "configurações de idioma".
  • Instale os idiomas, se ausentes. (Para mim, eu instalaria os idiomas chinês e japonês, além do inglês)
  • Para a opção Languagee Region, verifique se o idioma padrão para eles é adequado, por exemplo, definido como "Inglês, Estados Unidos UTF-8",
  • Reinicialize, se alguma alteração for feita.
  • Verifique se está tudo bem.
Eric Wang
fonte
0

Com as localidades, você deve remover o idioma que conflita com seu sistema, isso funcionou para mim, no ubunty kylin 16.04, eu o instalei no ubuntu 14.04

Bart
fonte
0

simplesmente funcionou bem para mim, indo ao gnome-terminal e digitando o comando apt --fix locales e reinicie o linux e sua espera pelo erro do terminal acabou.

Shashank
fonte
0
$ mkdir -p $HOME/.locale
$ I18NPATH=./wrk/ localedef -f UTF-8 -i fi_SE $HOME/.locale/fi_SE.UTF-8
$ LOCPATH=$HOME/.locale LC_ALL=fi_SE.UTF-8 date
$ echo "export LOCPATH=\$HOME/.locale" >> $HOME/.bashrc
$ echo "export LANG=fi_SE.UTF-8" >> $HOME/.bashrc

fi_SE para seu LOCALE e consulte UTF-8 ou utf8

Dzmitry
fonte
0

Eu mesmo consegui causar isso ao migrar arquivos de ponto do diretório inicial para uma nova máquina e não consegui identificar a causa por um tempo por causa da pesquisa de arquivos, LC_mas não por isso LOC.

O ~/.bashrcarquivo que copiei tinha o seguinte:

export LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale

(o valor específico aqui foi devido a experiências anteriores com o GNU Guix na máquina antiga; mas o fato relevante é simplesmente que a variável de ambiente foi configurada para um caminho agora inválido.)

Isso resultou no seguinte erro ao executar vários programas:

Warning: locale not supported by C library, locale unchanged

E esses erros ao executar locale:

locale: Cannot set LC_CTYPE to default locale: No such file or directory
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

Remover (ou comentar) a LOCPATHlinha resolveu meus problemas.

phils
fonte