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, nenhum erro foi mencionado durante a instalação. Mas quando eu executo o mongocomando, o seguinte erro foi exibido no terminal.

Falha na inicialização global: Valor inválido ou nenhum código de idioma do usuário definido. Verifique se as variáveis ​​de ambiente LANG e / ou LC_ * estão definidas corretamente

Gayan Charith
fonte

Respostas:

89

Parece que suas localeconfigurações estão quebradas ou inexistentes nessa VM ou pelo menos nessa sessão nessa VM. Uma das dependências do MongoDB ( impulso ) falhará quando um código de idioma não estiver definido corretamente (consulte SERVER-9032 ). Para referência, antes da alteração no SERVER-9032, esse problema ainda acontecia, mas era assim .

Às vezes, o logoff e o logon novamente podem corrigi-lo (apenas interrompido para a sessão atual) ou você pode tentar executar sudo locale-genpara garantir que a geração seja bem-sucedida.

Enquanto isso, como uma solução alternativa para a execução mongo(ou mongodetc.), basta definir sua LC_ALLvariável manualmente antes de iniciar o programa:

export LC_ALL=C
mongo 
Adam C
fonte
Devemos configurar o código do idioma ao criar uma nova VM?
25415 Alex
11
Depende de como você instala o sistema operacional - a maioria dos fluxos / UIs de configuração cuidará disso perguntando onde você está e qual idioma você usa - se você for para a escola antiga, provavelmente terá que fazer isso sozinho, mas Tenho certeza de que não vejo uma tela de seleção de local há anos. Basicamente, não é razoável esperar que isso seja feito por você e você só deve ouvir sobre isso quando estiver estragado de alguma forma.
Adam C
Obrigado, era um CentOS Vm, então acho que preciso de uma tarefa Ansible para isso!
26615 Alex
15

Também tentei instalar o MongoDB no Ubuntu 12.04 e obtive o mesmo erro em uma máquina virtual (XEN). Para mim, a modificação /etc/default/localefez 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 (observe as aspas e o: en):

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

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

LeBird
fonte
4

Embora as outras respostas fornecidas aqui resolvam o problema corretamente, a seguinte pergunta sobre o Stackoverflow me levou a saber qual é o problema real ao instalar o MongoDB em uma VM do Vagrant e obter o erro acima:

Esse problema aparece porque a máquina host coloca a localidade no convidado via ssh.

Assim, a resposta que sugere substituir o local do host no arquivo Vagrant o resolve 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 ele não modificar o valor real de LC_ALL no host.

conceptdeluxe
fonte
1

Com base neste https://askubuntu.com/a/227513/59618, você pode:

$ 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.
psychok7
fonte
não funcionou para mim
Iman Mohamadi