erro na instalação do mongo na máquina virtual

40

Eu tento instalar o mongo usando a documentação do mongo: Instale o MongoDB no Ubuntu não erros foram mencionados durante a instalação. Mas quando eu executo o comando mongo , o seguinte erro foi exibido no terminal.

Failed global initialization: BadValue Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly

    
por Gayan Charith 14.10.2014 / 10:19

4 respostas

89

Parece que suas configurações de locale estão quebradas ou inexistentes nessa VM, ou pelo menos essa sessão em essa VM. Uma das dependências do MongoDB ( boost ) falhará quando uma localidade não estiver corretamente configurada (veja SERVER-9032 ). Para referência, antes da mudança no SERVER-9032, esse problema ainda acontecia, mas parecia como este .

Às vezes, fazer logout e voltar ao sistema pode corrigi-lo (apenas quebrado para a sessão atual) ou você pode tentar executar sudo locale-gen para garantir que a geração seja bem-sucedida.

Nesse meio tempo, como uma alternativa para obter mongo (ou mongod etc.) em execução, basta definir sua variável LC_ALL manualmente antes de iniciar o programa:

export LC_ALL=C
mongo 
    
por Adam C 15.10.2014 / 11:43
15

Eu também tentei instalar o MongoDB no Ubuntu 12.04 e recebi o mesmo erro em uma máquina virtual (XEN). Para mim, modifiying /etc/default/locale fez o truque. Eu consegui trabalhar com essas configurações:

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

Ou, outra configuração de trabalho seria (lembre-se das aspas e de: en):

LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
LC_ALL="en_US.UTF-8"

A solução alternativa de Adam C com export também ajudou e é provavelmente a resposta mais elaborada.

    
por LeBird 03.12.2014 / 17:38
4

Embora as outras respostas fornecidas aqui resolvam o problema corretamente, a pergunta do Stackoverflow a seguir trouxe-me para o problema atual ao ter o MongoDB instalado em uma VM do Vagrant e recebendo o erro acima:

This problem appears because host machine put locale to guest via ssh.

Assim, a resposta sugerindo a substituição da localidade do host no Vagrantfile resolve-a permanentemente com apenas uma linha:

Vagrant.configure(2) do |config|

    ENV['LC_ALL']="en_US.UTF-8"

    # ...

end

Observe também os comentários sobre o fato de que não modifica o valor LC_ALL real no host.

    
por conceptdeluxe 09.04.2016 / 04:42
1

Com base neste link , você pode simplesmente:

$ sudo locale-gen "en_US.UTF-8"
Generating locales...
  en_US.UTF-8... done
Generation complete.

$ sudo dpkg-reconfigure locales
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.
    
por psychok7 09.12.2015 / 16:34