Corrija o erro Cannot set LC_ALL to default locale no Ubuntu
Ao inicializar uma instância do Ubuntu Server você pode encontrar algumas mensagens de erros relacionadas à definição do locale do sistema operacional. Tive que resolver esse bug nas VMs que criei na Digital Ocean, Amazon EC2 e também no Virtual Box, porém acredito que em outros ambientes este problema possa se repetir. Abaixo as mensagens de erros encontradas:
locale: Cannot set LC_ALL to default locale: No such file or directory
perl: warning: Please check that your locale settings:
locale: Cannot set LC_CTYPE to default locale: No such file or directory
Todas as mensagens estão relacionadas à falta de configuração do locale do sistema operacional, por exemplo, na Digital Ocean as VMs são criadas com o locale em inglês. Isso ocorre pois o sistema tenta traduzir os caracteres do console para pt_BR quando se conecta remotamente por um desktop em Português.
Erros retornados quando não há locale suportado pelo computador remoto
Algumas falhas que ocorrem caso o locale pt_BR.UTF-8 não seja adicionado ao sistema:
Execução do comando locale:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
root@ubuntu:~# locale <strong>locale: Cannot set LC_ALL to default locale: No such file or directory </strong>LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC=pt_BR.UTF-8 LC_TIME=pt_BR.UTF-8 LC_COLLATE="en_US.UTF-8" LC_MONETARY=pt_BR.UTF-8 LC_MESSAGES="en_US.UTF-8" LC_PAPER=pt_BR.UTF-8 LC_NAME=pt_BR.UTF-8 LC_ADDRESS=pt_BR.UTF-8 LC_TELEPHONE=pt_BR.UTF-8 LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=pt_BR.UTF-8 LC_ALL= |
Execução dos comandos: aptitude update && aptitude dist-upgrade
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Get: 10 http://mirrors.digitalocean.com/ubuntu/ trusty-updates/main python3-software-properties all 0.92.37 [19.4 kB] Fetched 2911 kB in 0s (6074 kB/s) <strong>perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_TIME = "pt_BR.UTF-8", LC_MONETARY = "pt_BR.UTF-8", LC_ADDRESS = "pt_BR.UTF-8", LC_TELEPHONE = "pt_BR.UTF-8", LC_NAME = "pt_BR.UTF-8", LC_MEASUREMENT = "pt_BR.UTF-8", LC_IDENTIFICATION = "pt_BR.UTF-8", LC_NUMERIC = "pt_BR.UTF-8", LC_PAPER = "pt_BR.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_ALL to default locale: No such file or directory </strong>(Reading database ... 59014 files and directories currently installed.) Preparing to unpack .../bash_4.3-7ubuntu1_amd64.deb ... Unpacking bash (4.3-7ubuntu1) over (4.3-6ubuntu1) ... |
Correção da configuração do locale com dois comandos
A correção é simples, apenas execute os comandos para adicionar e reconfigurar os locales en_US e pt_BR:
1 2 |
locale-gen en_US en_US.UTF-8 pt_BR.UTF-8 dpkg-reconfigure locales |
Faça logout e login novamente via SSH e você não receberá novas mensagens de erro.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
root@ubuntu:~# locale LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC=pt_BR.UTF-8 LC_TIME=pt_BR.UTF-8 LC_COLLATE="en_US.UTF-8" LC_MONETARY=pt_BR.UTF-8 LC_MESSAGES="en_US.UTF-8" LC_PAPER=pt_BR.UTF-8 LC_NAME=pt_BR.UTF-8 LC_ADDRESS=pt_BR.UTF-8 LC_TELEPHONE=pt_BR.UTF-8 LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=pt_BR.UTF-8 LC_ALL= |
Update para 16.10:
No Ubuntu 16.10 ficou mais fácil. Recentemente criei um droplet na Digital Ocean e recebi a seguinte mensagem já com os comandos para solução do problema:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
-bash: warning: setlocale: LC_CTYPE: cannot change locale (pt_BR.UTF-8): No such file or directory _____________________________________________________________________ WARNING! Your environment specifies an invalid locale. The unknown environment variables are: LC_CTYPE=pt_BR.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-pt or sudo locale-gen pt_BR.UTF-8 To see all available language packs, run: apt-cache search "^language-pack-[a-z][a-z]$" To disable this message for all users, run: sudo touch /var/lib/cloud/instance/locale-check.skip |
É isso, se tiver alguma dúvida é só comentar!
Resolveu meu problema, vlw!
Muito bom o artigo!
Valeu!
Me salvou, nao funcionava acentuação. Fique mais de hora caçando solução, vlw
kra Você é um Anjo Virtual… Parabéns
🙂
Valeu mesmo. Apanhei dois dias na AWS tentando instalar o Postgres e só dava erro, além dos citados, informava: “* No PostgreSQL clusters exist; see “man pg_createcluster” “
TOP!!!
Parabéns pelo post!!! Resolveu meu problema!
Valeu!
Obrigado !
obrigado resolveu o problema tutorial 100000%
Valeu, Leonardo!
Ola Fernando, existe algum problema em deixar em pt-br?
Não, pode configurar como pt-br normalmente.
Funcionou!
uso linux mint e não funcionou, quando digito o primeiro código, o terminal retorna “seed: couldn’t open temporary file /etc/sedoa6RSJ: Permission denied” e o segundo “perl: warning: Setting locale failed.”.
Vou continuar a pesquisar, mas se alguem souber resolver agradeço
Em 2020 resolvendo um problema que tive no MAKULU core 15. Sistema novamente atualizando normal. Muito obrigado por essa ajuda.