error al instalar mongo en máquina virtual

40

Intento instalar mongo usando la documentación de mongo: Instalar MongoDB en Ubuntu no se mencionaron errores durante la instalación. Pero cuando ejecuto el mongocomando se muestra el siguiente error en el terminal.

Inicialización global fallida: BadValue Inválido o sin configuración regional de usuario establecida. Asegúrese de que las variables de entorno LANG y / o LC_ * estén configuradas correctamente

Gayan Charith
fuente

Respuestas:

89

Parece que su localeconfiguración está rota o no existe en esa VM, o al menos esa sesión en esa VM. Una de las dependencias de MongoDB ( boost ) fallará cuando una configuración regional no esté configurada correctamente (consulte SERVER-9032 ). Como referencia, antes del cambio en SERVER-9032, este problema aún ocurría pero se veía así .

A veces, cerrar sesión y volver a iniciarla puede solucionarlo (solo se rompe para la sesión actual), o puede intentar ejecutar sudo locale-genpara asegurarse de que la generación sea exitosa.

Mientras tanto, como una solución alternativa para que se ejecute mongo(o mongodetc.), simplemente configure su LC_ALLvariable manualmente antes de iniciar el programa:

export LC_ALL=C
mongo 
Adam C
fuente
¿Se supone que debemos configurar la configuración regional al crear una nueva máquina virtual?
Alex
1
Depende de cómo realice la instalación de su sistema operativo: la mayoría de los flujos de configuración / IU se encargarán de esto preguntándole dónde está y qué idioma usa: si va a la vieja escuela, posiblemente tenga que hacerlo usted mismo, pero Estoy bastante seguro de que no he visto una pantalla de selección de configuración regional en años. Básicamente, no es irrazonable esperar que esto se haga por usted y solo debe escucharlo cuando está mal de alguna manera.
Adam C
Gracias, fue un CentOS Vm, ¡así que creo que necesito una tarea Ansible para eso!
Alex
15

También intenté instalar MongoDB en Ubuntu 12.04 y obtuve el mismo error en una máquina virtual (XEN). Para mí, la modificación /etc/default/localehizo el truco. Lo tengo trabajando con esta configuración:

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

O, otra configuración de trabajo sería (tenga en cuenta las comillas y el: en):

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

La solución de Adam C conexport también ayudó y es probablemente la respuesta más elaborada.

LeBird
fuente
4

Aunque las otras respuestas proporcionadas aquí resuelven el problema correctamente, la siguiente pregunta de Stackoverflow me llevó a cuál es el problema real al tener MongoDB instalado en una VM Vagrant y obtener el error anterior:

Este problema aparece porque la máquina host pone la configuración regional al invitado mediante ssh.

Por lo tanto, la respuesta que sugiere anular la configuración regional del host dentro del archivo Vagrant lo resuelve permanentemente con solo una línea:

Vagrant.configure(2) do |config|

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

    # ...

end

También tenga en cuenta los comentarios sobre que no modifica el valor real LC_ALL en el host.

conceptdeluxe
fuente
1

Basado en este https://askubuntu.com/a/227513/59618 puede simplemente:

$ 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
fuente
no funcionó para mí
Iman Mohamadi