Nota: Este artigo foi publicado originalmente em 2018. Alguns passos, comandos ou versões de software podem ter mudado. Consulte a documentação atual do Ubuntu para obter as informações mais recentes.
Ao trabalhar com Ubuntu, às vezes quando você acessa um servidor remotamente via SSH, recebe vários erros de locale que são bastante irritantes. Felizmente, ao usar o Ubuntu 18, você recebe uma mensagem ao fazer login que é bastante útil:
_____________________________________________________________________
WARNING! Your environment specifies an invalid locale.
The unknown environment variables are:
LC_CTYPE=UTF-8 LC_ALL=
This can affect your user experience significantly, including the
ability to manage packages. You may install the locales by running:
sudo apt-get install language-pack-UTF-8
or
sudo locale-gen UTF-8
To see all available language packs, run:
apt-cache search "^language-pack-$"
To disable this message for all users, run:
sudo touch /var/lib/cloud/instance/locale-check.skip
_____________________________________________________________________
Então, o ponto principal aqui é que sua máquina cliente tem um locale que seu servidor Ubuntu está tendo dificuldade em entender. Infelizmente, você segue as instruções apenas para encontrar isto:
$ sudo apt-get install language-pack-UTF-8
password for :
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package language-pack-UTF-8
ou isto
$ sudo locale-gen UTF-8
Error: 'UTF-8' is not a supported language or locale
ou isto
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
LC_CTYPE = "en_US.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
o que faz você se perguntar… se não funcionam, por que eu disse que a mensagem era bastante útil? Bem, porque ela nos aponta na direção certa: precisamos instalar o pacote de idioma de alguma forma. Acontece que estou usando um Mac e ele está em espanhol, então o Ubuntu não consegue traduzir isso em um de seus locales. Então, veja o exemplo abaixo:
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales
Isso vai dizer ao sistema para usar en_us como padrão e pronto. No meu caso, executei para obter o código de idioma para Espanhol/México, que é: **es_MX.UTF-8**. Certifique-se de instalar o idioma enquanto estiver na tela do dpkg-reconfigure locales antes de tentar executar os seguintes comandos. Isso significa que você pode procurar o seu se estiver usando um idioma diferente e inseri-lo assim:
export LC_ALL="es_MX.UTF-8"
export LC_CTYPE="es_MX.UTF-8"
sudo dpkg-reconfigure locales
e agora tudo deve funcionar perfeitamente!
Resumo
Este guia abordou as causas comuns e soluções para este problema no Ubuntu. Se o problema persistir, consulte a documentação oficial ou os logs do sistema para obter informações de diagnóstico adicionais.