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

40

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

  

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

    
задан Gayan Charith 14.10.2014 в 10:19
источник

4 ответа

89

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

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

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

export LC_ALL=C
mongo 
    
ответ дан Adam C 15.10.2014 в 11:43
источник
15

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

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

Или другая рабочая конфигурация будет (вспомните кавычки и: ru):

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

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

ответ дан LeBird 03.12.2014 в 17:38
4

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

  

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

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

Vagrant.configure(2) do |config|

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

    # ...

end

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

    
ответ дан conceptdeluxe 09.04.2016 в 04:42
1

На основе Ссылка вы можете просто:

$ 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 09.12.2015 в 16:34