errore nell'installazione di mongo nella macchina virtuale


40

Provo ad installare mongo usando la documentazione di mongo: Installa MongoDB su Ubuntu non sono stati menzionati errori durante l'installazione. Ma quando eseguo il mongocomando è stato visualizzato il seguente errore nel terminale.

Inizializzazione globale non riuscita: BadValue Impostazioni locali dell'utente non valide o nessuna. Assicurati che le variabili di ambiente LANG e / o LC_ * siano impostate correttamente

Risposte:


89

Sembra che le tue localeimpostazioni siano rotte o inesistenti su quella VM, o almeno quella sessione su quella VM. Una delle dipendenze di MongoDB ( boost ) fallirà quando un'impostazione internazionale non è impostata correttamente (vedere SERVER-9032 ). Per riferimento, prima della modifica di SERVER-9032 questo problema si era ancora verificato ma sembrava simile a questo .

A volte disconnettersi e riconnettersi può risolverlo (interrotto solo per la sessione corrente) oppure provare a correre sudo locale-genper assicurarsi che la generazione abbia esito positivo.

Nel frattempo, come soluzione alternativa per far funzionare mongo(o mongodecc.), Basta impostare LC_ALLmanualmente la variabile prima di avviare il programma:

export LC_ALL=C
mongo 

Dobbiamo configurare le impostazioni locali durante la creazione di una nuova macchina virtuale?
Alex,

1
Dipende da come installi il tuo sistema operativo - la maggior parte dei flussi di configurazione / IU si occuperanno di questo chiedendoti dove ti trovi e quale lingua usi - se vai alla vecchia scuola dovresti potenzialmente farlo da solo, ma Sono abbastanza sicuro di non vedere una schermata di selezione delle impostazioni locali da anni. Fondamentalmente, non è irragionevole aspettarsi che questo venga fatto per te e dovresti sentirlo solo quando è rovinato in qualche modo.
Adam C

Grazie, era un CentOS Vm quindi penso di aver bisogno di un'attività Ansible per quello!
Alex,

15

Ho anche provato a installare MongoDB su Ubuntu 12.04 e ho riscontrato lo stesso errore su una macchina virtuale (XEN). Per me, la modifica ha /etc/default/localefatto il trucco. Ho funzionato con queste impostazioni:

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

Oppure, un'altra configurazione funzionante sarebbe (attenzione alle virgolette e al: en):

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

Anche la soluzione di Adam Cexport ha aiutato ed è probabilmente la risposta più elaborata.


4

Sebbene le altre risposte fornite qui risolvano correttamente il problema, la seguente domanda StackOverflow mi ha portato a capire quale sia il vero problema quando MongoDB è installato in una macchina virtuale Vagrant e si ottiene l'errore sopra riportato:

Questo problema si verifica perché la macchina host ha impostato le impostazioni locali sul guest tramite ssh.

Quindi la risposta che suggerisce di sovrascrivere le impostazioni locali dell'host all'interno del file Vagrant risolve definitivamente con solo una riga:

Vagrant.configure(2) do |config|

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

    # ...

end

Si noti inoltre che i commenti non modificano il valore LC_ALL effettivo sull'host.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.