41 votes

Erreur lors de l'installation de Mongo dans une machine virtuelle

Je tente d'installer mongo en suivant la documentation de mongo : Installer MongoDB sur Ubuntu aucun erreur n'a été mentionnée pendant l'installation. Mais lorsque j'exécute la commande mongo l'erreur suivante s'affiche dans le terminal.

Échec de l'initialisation globale : Mauvaise valeur. Paramètre utilisateur invalide ou non défini. Veuillez vous assurer que les variables d'environnement LANG et/ou LC_* sont correctement définies

90voto

Adam C Points 1929

Il semble que vos paramètres de locale soient incorrects ou inexistants sur cette machine virtuelle, ou du moins pour cette session sur cette machine virtuelle. L'une des dépendances de MongoDB (boost) échouera si un locale n'est pas correctement défini (voir SERVER-9032). Pour référence, avant le changement dans SERVER-9032 ce problème se produisait toujours mais ressemblait à cela.

Parfois se déconnecter et se reconnecter peut résoudre le problème (seulement pour la session en cours), ou vous pouvez essayer d'exécuter sudo locale-gen pour vous assurer que la génération est réussie.

En attendant, comme solution de contournement pour faire fonctionner mongo (ou mongod, etc.), définissez manuellement votre variable LC_ALL avant de lancer le programme :

export LC_ALL=C
mongo

15voto

Colin B. Points 21

J'ai également essayé d'installer MongoDB sur Ubuntu 12.04 et j'ai obtenu la même erreur sur une machine virtuelle (XEN). Pour moi, la modification de /etc/default/locale a fonctionné. J'ai réussi à le faire fonctionner 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 (faites attention aux guillemets et au :en) :

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

Le contournement d'Adam C avec export m'a également aidé et est probablement une réponse plus élaborée.

4voto

Stefan Points 41

Bien que les autres réponses fournies ici résolvent le problème correctement, la question suivante sur Stackoverflow m'a amené à comprendre quel était le véritable problème lorsque MongoDB est installé dans une VM Vagrant et que l'erreur ci-dessus se produit :

Ce problème survient car la machine hôte transmet la locale au système invité via SSH.

Ainsi, la réponse suggérant de remplacer la locale hôte à l'intérieur du fichier Vagrantfile le résout de manière permanente en une seule ligne :

Vagrant.configure(2) do |config|

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

    # ...

end

Il convient de noter également que cette action ne modifie pas la valeur LC_ALL actuelle sur la machine hôte.

1voto

robsku Points 17

Basé sur ce https://askubuntu.com/a/227513/59618 vous pouvez simplement :

$ sudo locale-gen "en_US.UTF-8"
Génération des locales...
  en_US.UTF-8... fait
Génération terminée.

$ sudo dpkg-reconfigure locales
Génération des locales...
  en_US.UTF-8... à jour
Génération terminée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X