Fehler bei der Installation von Mongo in der virtuellen Maschine

40

Ich versuche, Mongo mithilfe der Mongo-Dokumentation zu installieren: Installieren Sie MongoDB unter Ubuntu. Während der Installation wurden keine Fehler erwähnt. Aber wenn ich den mongoBefehl ausführen, wurde folgender Fehler im Terminal angezeigt.

Globale Initialisierung fehlgeschlagen: BadValue Ungültiges oder kein Benutzergebietsschema festgelegt. Stellen Sie sicher, dass die Umgebungsvariablen LANG und / oder LC_ * korrekt eingestellt sind

Gayan Charith
quelle

Antworten:

89

Anscheinend sind Ihre localeEinstellungen auf dieser VM oder zumindest in dieser Sitzung auf dieser VM fehlerhaft oder nicht vorhanden. Eine der MongoDB-Abhängigkeiten ( Boost ) schlägt fehl, wenn ein Gebietsschema nicht korrekt festgelegt ist (siehe SERVER-9032 ). Als Referenz vor der Änderung in SERVER-9032 dieses Problem noch passiert ist, aber sah wie folgt aus .

Manchmal kann das Abmelden und erneutes Anmelden das Problem beheben (nur für die aktuelle Sitzung unterbrochen), oder Sie können versuchen sudo locale-gen, das Programm auszuführen , um sicherzustellen, dass die Generierung erfolgreich ist.

In der Zwischenzeit können Sie zur Umgehung des Problems mongo(oder mongodÄhnlichem) Ihre LC_ALLVariable manuell festlegen , bevor Sie das Programm starten:

export LC_ALL=C
mongo 
Adam C
quelle
Sollen wir das Gebietsschema beim Erstellen einer neuen VM konfigurieren?
Alex
1
Hängt davon ab, wie Sie Ihr Betriebssystem installieren - die meisten Installationsabläufe / Benutzeroberflächen kümmern sich darum, indem sie Sie fragen, wo Sie sich befinden und welche Sprache Sie verwenden Ich bin mir ziemlich sicher, dass ich seit Jahren keinen Auswahlbildschirm für das Gebietsschema mehr gesehen habe. Grundsätzlich ist es nicht unvernünftig zu erwarten, dass dies für Sie getan wird, und Sie sollten nur davon hören, wenn es auf irgendeine Weise vermasselt ist.
Adam C
Danke, es war ein CentOS Vm, also denke ich, ich brauche eine Ansible-Aufgabe dafür!
Alex
15

Ich habe auch versucht, MongoDB unter Ubuntu 12.04 zu installieren und habe den gleichen Fehler auf einer virtuellen Maschine (XEN) erhalten. Für mich hat das Modifizieren /etc/default/localeden Trick gemacht. Ich habe es mit diesen Einstellungen funktioniert:

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

Oder eine andere funktionierende Konfiguration wäre (beachten Sie die Anführungszeichen und das: en):

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

Der Workaround von Adam C hatexport ebenfalls geholfen und ist wahrscheinlich die ausführlichere Antwort.

LeBird
quelle
4

Obwohl die anderen hier gegebenen Antworten das Problem korrekt lösen , brachte mich die folgende Stackoverflow- Frage zu dem eigentlichen Problem, wenn MongoDB auf einer Vagrant-VM installiert ist und der obige Fehler auftritt :

Dieses Problem tritt auf, weil der Hostcomputer das Gebietsschema über ssh an den Gast übermittelt.

Daher löst die Antwort, die vorschlägt, das Host-Gebietsschema in der Vagrant-Datei zu überschreiben, es permanent mit nur einer Zeile:

Vagrant.configure(2) do |config|

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

    # ...

end

Beachten Sie auch die Kommentare dazu, dass der tatsächliche LC_ALL-Wert auf dem Host nicht geändert wird.

conceptdeluxe
quelle
1

Basierend auf dieser https://askubuntu.com/a/227513/59618 können Sie einfach:

$ 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
quelle
hat bei mir nicht funktioniert
Iman Mohamadi