Как установить mongodb 3.4 в debian stretch (9)?


13

Я хочу установить mongodb 3.4 на Debian Stretch. К сожалению, пакеты растяжения для Debian являются только mongodb 3.2 ( https://packages.debian.org/stretch/mongodb ).

В документации mongodb упоминаются только Debian 7 и 8 ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/ ). При использовании команд debian 8 я не могу установить пакеты mongodb, потому что они имеют неудовлетворенные зависимости.

При разрешении jessie-backports ошибка неудовлетворенных зависимостей исчезла, но я не уверен, стоит ли мне это делать и устанавливать пакеты jessie-backports в растяжку.

Как бы вы установили mongodb 3.4 на Debian Stretch?

Спасибо за любой совет.


они выпустили 3,6 для стрейч
Eri

Ответы:


16

Ошибка при попытке использовать инструкции Debian 8 предполагает множество отсутствующих зависимостей, но на самом деле будет работать, если вы установите единственную фактическую отсутствующую зависимость ( libssl1.0.0). Для справки, чтобы выяснить, чего не хватало, я скачал mongodбинарный файл и взглянул на ldd:

adam@debian9:~/mongo/mongodb-linux-x86_64-debian81-3.4.6/bin$ ldd mongod
    linux-vdso.so.1 (0x00007ffd0e15d000)
    libssl.so.1.0.0 => not found
    libcrypto.so.1.0.0 => not found
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f93c6dff000)
    *snip*

Если вы посмотрите, что установлено в Debian 9, у нас просто есть версии libssl, которые слишком новы. libsslИ libcryptoбиблиотеки одновременно установлены на libsslкорпусе , и это в значительной степени автономным. Следовательно, мы можем просто взять libssl1.0.0пакет Debian 8 и установить его.

Версия пакета amd64 может быть найдена здесь (только Google для libssl1.0.0 Джесси и ваша арка для другой версии).

Чтобы установить этот пакет, загрузите файл (в моем случае это был «Загрузки»), а затем установите его с помощью dpkg:

adam@debian9:~$ sudo dpkg -i /home/adam/Downloads/libssl1.0.0_1.0.1t-1+deb8u6_amd64.deb 
Selecting previously unselected package libssl1.0.0:amd64.
(Reading database ... 126471 files and directories currently installed.)
Preparing to unpack .../libssl1.0.0_1.0.1t-1+deb8u6_amd64.deb ...
Unpacking libssl1.0.0:amd64 (1.0.1t-1+deb8u6) ...
Setting up libssl1.0.0:amd64 (1.0.1t-1+deb8u6) ...

После этого мы быстро перепроверим ldd:

adam@debian9:~/mongo/mongodb-linux-x86_64-debian81-3.4.6/bin$ ldd mongod
    linux-vdso.so.1 (0x00007ffdf25de000)
    libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f86bc12d000)
    libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f86bbd31000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f86bbb29000)
*snip*

Успех! Теперь давайте попробуем установить пакет mongodb-org:

adam@debian9:~$ sudo apt install mongodb-org
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
The following NEW packages will be installed:
  mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 66.8 MB of archives.
After this operation, 270 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-shell amd64 3.4.6 [7,980 kB]
Get:2 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-server amd64 3.4.6 [14.2 MB]
Get:3 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-mongos amd64 3.4.6 [8,103 kB]
Get:4 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-tools amd64 3.4.6 [36.5 MB]
Get:5 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org amd64 3.4.6 [3,820 B]
Fetched 66.8 MB in 7s (9,509 kB/s)                                                             
Selecting previously unselected package mongodb-org-shell.
(Reading database ... 126491 files and directories currently installed.)
Preparing to unpack .../mongodb-org-shell_3.4.6_amd64.deb ...
Unpacking mongodb-org-shell (3.4.6) ...
Selecting previously unselected package mongodb-org-server.
Preparing to unpack .../mongodb-org-server_3.4.6_amd64.deb ...
Unpacking mongodb-org-server (3.4.6) ...
*snip*
Adding system user `mongodb' (UID 119) ...
Adding new user `mongodb' (UID 119) with group `nogroup' ...
Not creating home directory `/home/mongodb'.
Adding group `mongodb' (GID 123) ...
Done.
Adding user `mongodb' to group `mongodb' ...
Adding user mongodb to group mongodb
Done.
Setting up mongodb-org (3.4.6) ...

Наконец, давайте удостоверимся, что служба запускается и мы можем соединиться с оболочкой:

adam@debian9:~$ sudo systemctl start mongod
adam@debian9:~$ mongo
MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.6 

И вот у вас это есть - пакеты Джесси, работающие над Stretch. Я уверен, что скоро будет официальный релиз, который сделает это устаревшим, но пока что это относительно безболезненный обходной путь.


Спасибо за трюк с бэкпортом. Я получал package not foundза mongodb-orgкогда осенило меня был неправильный bitiness в Linux. Получил 32-битную виртуальную машину вместо 64-битной ... упс! MongoDB инструкции и двоичные файлы предназначены только для 64-разрядных!
sumitkm

2
это имело место в течение долгого времени, 32-битные имели серьезные ограничения (максимум 2 ГБ данных), особенно в механизме хранения MMAP, не уверен, что WiredTiger когда-либо поддерживал его
Adam C

3
нашел его - отбросил поддержку 32-битной версии 3.0: docs.mongodb.com/manual/release-notes/3.0-compatibility/…
Адам С

1
Спасибо за это Адам. На последнем шаге я бы использовал, sudo systemctl start mongodпоскольку SystemD является системой инициализации по умолчанию для Debian, начиная с Jessie, и serviceстала просто сценарием совместимости.
Рафа


3

Похоже, что у mongodb 3.4 еще нет бинарных файлов для debian stretch в их официальном хранилище apt Ваш лучший подход может быть построен из источника для вашей системы.

На этой странице есть конкретные инструкции: https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source

Вы также можете попытаться использовать пакеты Ubuntu для Xenial, но нет гарантии, что это будет работать должным образом, и я думаю, что сборка из исходного кода была бы лучшей идеей.


Я пытался собрать его из исходного кода, но я получаю SSLv2_method не было объявлено ошибки из asio / ssl / impl / context.ipp. Есть идеи?
Гамбург

1

У меня была эта проблема (хотя я использовал debain 9).

Небольшое копание показало, что это произошло из-за того, что более ранняя версия в пакете debian не могла быть удалена установщиком (я пытался обновить неофициальный пакет mongodb, предоставленный Debian, до официальных пакетов mongodb-org).

Решение было следующим:

sudo apt-get autoremove mongodb-org
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install -y mongodb-org

Надеюсь, это сэкономит кому-то время!




0

Я использую Debian 9 Stretch

Я скачал эту версию MongoDB: Linux 64-bit legacy 64x

введите описание изображения здесь

Я скачал в папку на рабочем столе и переименовал в mongodb

После этого вам «нужно» переместить вашу недавно переименованную папку в /opt/

mv mongodb /opt/

Теперь вы можете получить доступ /opt/mongodb/binи выполнить команду, подобную этой:

./mongod --dbpath ./db/

Для того, чтобы сделать вещи весело, вы можете создать символическую ссылку, например, mongodчтобы /usr/local/bin/, как это:

ln -s /opt/mongodb/bin/mongod /usr/local/bin/mongod

Теперь в вашем терминале введите команду из любого места:

mongod --dbpath /homer/user/Desktop/db

Вам нужно указать --dbpath для правильной работы mongod.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.