Могу ли я использовать 14.04 пакеты MongoDB с 16.04?

К сожалению, официальный пакет Ubuntu для MongoDB все еще застрял на 2.6, что на данный момент является древним ( этот баг не был подхвачен для ярких, хитрых или ксениальных).

MongoDB еще не выпустила пакет для 16.04 (Xenial), так как я могу использовать пакеты 14.04 (Trusty) для установки MongoDB 3.2+ на 16.04?

10
задан 14 April 2016 в 19:02

2 ответа

Это - определенный взлом, но да, это может быть сделано. Существует недокументированный шаг, должен был на самом деле запустить сервис и (достаточно странно), если Вы не хотите к futz вокруг с новомодным преобразованием задания вручную, необходимо установить Ubuntu mongodb пакет сначала, затем удалите его так, чтобы у Вас был применимый сервис. Прямая установка пакетов MongoDB не даст Вам рабочий сервис на новые 16.04.

Обновление - июль 2016: официальная фиксация для этого (добавляющий поддержку 16,04 к пакетам) была завершена в 3.3 ответвлениях dev как часть СЕРВЕРА 23043 - и была выпущена как бэкпорт в 3,2 рядах как часть 3.2.7. Следовательно, если Вы используете 3.2.7 +, Вы не должны делать, это и официальная установка пакета MongoDB должны просто работать.

В любом случае, после выполнения добавления/удаления, следуйте обычным инструкциям для 14,04, полученный в итоге здесь:

# install the Ubuntu package (to get the service set up correctly)
sudo apt-get install mongodb
# Now remove it and continue with the MongoDB instructions
sudo apt-get remove mongodb
sudo apt-get autoremove
# import key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
# add trusty repos
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
# update apt
sudo apt-get update
# install the MongoDB package
sudo apt-get install -y mongodb-org

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

$ sudo service mongodb start
Failed to start mongodb.service: Unit mongodb.service is masked.

Фиксация этого не слишком трудна:

$ sudo systemctl unmask mongodb
Removed symlink /etc/systemd/system/mongodb.service.

Теперь мы можем позволить/начать сервис, получить его состояние и т.д.

$ sudo service mongodb enable
$ sudo service mongodb start
$ sudo service mongodb status
● mongodb.service - LSB: An object/document-oriented database
   Loaded: loaded (/etc/init.d/mongodb; bad; vendor preset: enabled)
   Active: active (running) since Thu 2016-04-14 16:40:35 IST; 7s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 2849 ExecStart=/etc/init.d/mongodb start (code=exited, status=0/SUCCESS)
 Main PID: 1593 (code=exited, status=0/SUCCESS)
    Tasks: 13 (limit: 512)
   Memory: 51.9M
      CPU: 100ms
   CGroup: /system.slice/mongodb.service
           └─2861 /usr/bin/mongod --config /etc/mongodb.conf

Успех - и мы получаем хороший указатель на активный файл конфигурации (который находится в старом key=value формат, посмотрите здесь для примеров в более новом рекомендуемом формате YAML).

Примечание: На самом деле будет два файла конфигурации /etc/mongod.conf и /etc/mongodb.conf благодаря незначительным различиям между этими двумя пакетами мы установили. Теперь-активная-служба указывает на старый формат один по умолчанию /etc/mongodb.conf - можно переключиться путем перемещения/копирования mongod.conf кому: mongodb.conf если Вы так желаете или просто редактируете файл непосредственно.

После того, как запущенный, для тестирования, подключение к базе данных с mongo оболочка:

$ mongo
MongoDB shell version: 3.2.5
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 

Если Вы хотите избавиться от предупреждений THP, проверьте этот ответ.

14
ответ дан 15 April 2016 в 05:02
  • 1
    Спасибо, собираясь пробовать его теперь. Именно так Вы знаете, я все еще в состоянии загрузиться в Windows, если я изменяю первый приоритет загрузки на окна. Но плохая сторона этого - я can' t переходят к личинке и доступу Ubuntu. – Gary Vlc 25 August 2017 в 21:20

Если Вы уже установили его, удалите mongodb:

sudo apt-get remove mongodb
sudo apt-get autoremove

Попытка с рекомендацией на digitalocean https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-16-04

0
ответ дан 15 April 2016 в 05:02
  • 1
    это решало Вашу проблему? Необходимо ли использовать безопасный режим каждый раз? – Zanna 25 August 2017 в 04:23

Другие вопросы по тегам:

Похожие вопросы: