Ошибка установки монго на виртуальной машине

Я пытаюсь установить mongo, используя документацию mongo: Установите MongoDB в Ubuntu, при установке ошибок не было. Но когда я запускаю mongo В терминале отображалась ошибка следования команды.

Не удалось выполнить глобальную инициализацию: BadValue Неверный или не задан языковой стандарт пользователя. Убедитесь, что переменные окружения LANG и / или LC_* установлены правильно

4 ответа

Решение

Выглядит как твой locale параметры повреждены или отсутствуют на этой виртуальной машине или, по крайней мере, на этом сеансе. Одна из зависимостей MongoDB ( boost) завершится с ошибкой, если локаль установлена ​​неправильно (см. SERVER-9032). Для справки, до изменения SERVER-9032 эта проблема все еще возникала, но выглядела так.

Иногда выход из системы и повторный вход могут это исправить (только для текущего сеанса), или вы можете попробовать запустить sudo locale-gen чтобы убедиться, что поколение успешно.

В то же время, как обходной путь, чтобы получить mongo (или же mongod и т. д.), просто установите свой LC_ALL переменная вручную перед запуском программы:

export LC_ALL=C
mongo 

Я также попытался установить MongoDB на Ubuntu 12.04 и получил ту же ошибку на виртуальной машине (XEN). Для меня, модификация /etc/default/locale сделал свое дело. Я получил это работает с этими настройками:

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

Или другой рабочий конфиг будет (обратите внимание на кавычки и:en):

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

Обход Адама Си сexport также помог и, вероятно, является более сложным ответом.

Хотя другие ответы, представленные здесь, решают проблему правильно, следующий вопрос Stackoverflow привел меня к реальной проблеме, когда MongoDB установлен в Vagrant VM и появляется вышеуказанная ошибка:

Эта проблема возникает из-за того, что хост-компьютер поставил гостевой язык через ssh.

Таким образом, ответ, предлагающий переопределить языковой стандарт хоста в Vagrantfile, решает его навсегда с помощью только строки:

Vagrant.configure(2) do |config|

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

    # ...

end

Также обратите внимание на комментарии о том, что он не изменяет фактическое значение LC_ALL на хосте.

На основании этого /questions/601492/kak-mne-ispravit-problemu-s-lokalyu/601539#601539 вы можете просто:

$ 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.
Другие вопросы по тегам