Como faço para corrigir meu problema de localidade?

Estou recebendo esta mensagem toda vez que faço algo como iniciar ou interromper um serviço.

perl: warning: Setting locale failed.   perl: warning: Please check that your locale settings:           LANGUAGE = "en_US:en",           LC_ALL = (unset),           LC_MESSAGES = "en_US.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_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   (Reading database ... 21173 files and directories currently installed.)  Removing bind9 ...   * Stopping domain name service... bind9                                        [ OK ]Processing triggers for man-db ...   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   

Como faço para corrigir esse erro ?

Executar locale para listar quais localidades atualmente definidas para a conta de usuário atual:

$ localeLANG=CLANGUAGE=LC_CTYPE=fi_FI.UTF-8LC_NUMERIC="C"LC_TIME="C"LC_COLLATE=fi_FI.UTF-8LC_MONETARY="C"LC_MESSAGES=fi_FI.UTF-8LC_PAPER="C"LC_NAME="C"LC_ADDRESS="C"LC_TELEPHONE="C"LC_MEASUREMENT="C"LC_IDENTIFICATION="C"LC_ALL=

Em seguida, gere a localidade ausente e reconfigure as localidades para tomar conhecimento:

$ sudo locale-gen "en_US.UTF-8"Generating locales...  en_US.UTF-8... doneGeneration complete.$ sudo dpkg-reconfigure localesGenerating locales...  en_US.UTF-8... up-to-dateGeneration complete.

Agora você não verá mais erros!

Nada sugerido acima funcionou no meu caso (Ubuntu Server 12.04 LTS). O que finalmente ajudou foi colocar no arquivo /etc/environment:

LC_ALL=en_US.UTF-8LANG=en_US.UTF-8

Por alguma razão estava faltando. As saídas para locale e outros comandos apareceram como se as variáveis fossem definidas corretamente. Em outras palavras, não tome como certo que todas as coisas básicas sejam declaradas onde deveriam ser declaradas.

Eles devem desaparecer após a emissão:

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

dpkg-reconfigure reconfigura os pacotes depois que eles já foram instalados. Passe os nomes de um pacote ou pacotes para reconfigurar. Ele fará perguntas de configuração, assim como quando o pacote foi instalado pela primeira vez.

Basta adicionar o seguinte ao seu .bashrc arquivo (supondo que você esteja usando bash)

export LC_ALL="en_US.UTF-8"

Esse é um problema comum se você estiver se conectando remotamente, portanto, a solução é não encaminhar sua localidade. Editar /etc/ssh/ssh_config e comentar SendEnv LANG LC_* linha.

Existe um comando para isso:

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

Ele atualiza /etc/default/locale com valores fornecidos.

Para aplicar as alterações, você pode

source /etc/default/locale

O que funcionou para mim no 12.10 foi este:

apt-get install language-pack-en-base  

Isso foi depois dpkg-reconfigure locales não produziu resultados.

Não se esqueça de sair da sua sessão SSH (ou do seu X11) saindo e fazendo login novamente. Todas essas sugestões não funcionaram para mim, a menos que eu fiz login novamente....

Para o Ubuntu 12.10, nenhuma das opções acima funcionou, exceto a solução do ratzs. Eu recomendo adicionar isso ao seu / etc / bash.ficheiro bashrc:

export LC_ALL="en_ZA.UTF-8"export LC_CTYPE="en_ZA.UTF-8"

Eu estava preso em um estado estranho onde minha máquina local está definida como es e assim a máquina remota (via vagrant) foi provisionado em um estado não tratado. Portanto, eu tive que usar o manual export= apenas para facilitar um sucesso dpkg-reconfigure. Então o sistema está bem.

export LC_ALL="en_US.UTF-8"sudo dpkg-reconfigure locales

possível duplicata de variáveis de localidade não têm efeito no shell remoto (perl: warning: Setting locale failed.)

Relacionados: [Como definir a localidade?] (perl - How to set locale? - Ask Ubuntu)

Correção fácil e permanente para todos os usuários: locale: Cannot set LC_CTYPE to default locale: No such file or directory locale - Ask Ubuntu

Você precisa dizer: sua máquina? Ou você só tem um login de usuário e não pode alterar as configurações do sistema? (Sim, eu sei que esta é uma pergunta muito antiga. E os votos positivos de respostas erradas são terríveis)