erreur lors de l'installation de mongo sur une machine virtuelle

40

J'essaie d'installer mongo à l'aide de la documentation de mongo: Installer MongoDB sur Ubuntu, aucune erreur n'a été signalée lors de l'installation. Mais lorsque je lance la mongocommande, l'erreur suivante s'est affichée dans le terminal.

Échec de l'initialisation globale: BadValue Paramètres régionaux non valides ou définis par l'utilisateur. Veuillez vous assurer que les variables d'environnement LANG et / ou LC_ * sont correctement définies

Gayan Charith
la source

Réponses:

89

On dirait que vos localeparamètres sont cassés ou inexistants sur cette machine virtuelle, ou au moins cette session sur cette machine virtuelle. L'une des dépendances de MongoDB ( boost ) échouera si les paramètres régionaux ne sont pas correctement définis (voir SERVER-9032 ). Pour référence, avant le changement dans SERVER-9032, ce problème existait toujours, mais ressemblait à ceci .

Parfois, vous déconnecter et vous reconnecter peut résoudre le problème (uniquement pour la session en cours), ou vous pouvez essayer de l'exécuter sudo locale-genpour vous assurer que la génération a réussi.

En attendant, comme une solution de contournement pour obtenir mongo(ou mongodetc.) en cours d' exécution, vient de mettre votre LC_ALLvariables manuellement avant de lancer le programme:

export LC_ALL=C
mongo 
Adam C
la source
Sommes-nous censés configurer les paramètres régionaux lors de la création d'une nouvelle machine virtuelle?
Alex
1
Cela dépend de la manière dont vous installez votre système d’exploitation (la plupart des flux d’installation et des interfaces utilisateur s’occupent de cela en vous demandant où vous êtes et de la langue que vous utilisez). Si vous allez à l’ancienne école, vous devrez potentiellement le faire vous-même. Je suis presque sûr que je n'ai pas vu d'écran de sélection de paramètres régionaux depuis des années. En gros, il n’est pas déraisonnable de s’attendre à ce que cela soit fait pour vous et vous ne devriez en entendre parler que lorsque cela est foutu en quelque sorte.
Adam C
Merci, c'était un CentOS Vm, donc je pense avoir besoin d'une tâche Ansible pour cela!
Alex
15

J'ai également essayé d'installer MongoDB sur Ubuntu 12.04 et j'ai eu la même erreur sur une machine virtuelle (XEN). Pour moi, la modification a /etc/default/localefait l'affaire. Je l'ai obtenu avec ces paramètres:

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

Ou, une autre configuration de travail serait (gardez les citations et le: en):

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

La solution de contournement d'Adam C aexport également aidé et constitue probablement la réponse la plus élaborée.

LeBird
la source
4

Bien que les autres réponses fournies ici résolvent le problème correctement, la question suivante de Stackoverflow m’a amené à comprendre quel était le problème réel lorsque MongoDB était installé sur une machine virtuelle vagabonde et obtenait l’erreur ci-dessus:

Ce problème apparaît parce que la machine hôte a mis les paramètres régionaux en invité via ssh.

Ainsi, la réponse suggérant de remplacer les paramètres régionaux de l'hôte dans le fichier Vagrant le résout de manière permanente avec juste une ligne:

Vagrant.configure(2) do |config|

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

    # ...

end

Notez également les commentaires sur le fait qu'il ne modifie pas la valeur LC_ALL réelle sur l'hôte.

conceptdeluxe
la source
1

Sur la base de cette https://askubuntu.com/a/227513/59618, vous pouvez simplement:

$ 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
la source
n'a pas fonctionné pour moi
Iman Mohamadi