web-dev-qa-db-fra.com

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

J'essaie d'installer mongo en utilisant la documentation de mongo: Installer MongoDB sur Ubunt aucune erreur n'a été mentionnée lors de l'installation. Mais lorsque j'exécute la suite de la commande mongo, 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

40
Gayan Charith

On dirait que vos paramètres locale 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 se posait toujours mais ressemblait à ceci .

Parfois, vous déconnecter et vous reconnecter peut résoudre le problème (uniquement s'il est interrompu pour la session en cours). Vous pouvez également essayer d'exécuter Sudo locale-gen pour vous assurer que la génération a réussi.

En attendant, pour contourner mongo (ou mongod etc.), définissez simplement votre variable LC_ALL manuellement avant de lancer le programme:

export LC_ALL=C
mongo 
89
Adam C

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, modifier /etc/default/locale a été efficace. 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 rechange d'Adam C avec export a également été utile et constitue probablement la réponse la plus élaborée.

15
LeBird

Bien que les autres réponses fournies ici résolvent le problème correctement, le Stackoverflow question suivant m'a amené à comprendre en quoi consiste le problème réel lorsque MongoDB est installé dans un Vagrant VM et obtient 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, le answer qui suggère 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 que ne modifie pas la valeur actuelle de LC_ALL sur l'hôte.

4
conceptdeluxe

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.
1
psychok7