Як встановити 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-сповіщення помилка незадоволених залежностей відпадає, але я не впевнений, чи варто це робити і встановлювати пакети 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-бітний VM замість 64-бітного ... ой! Інструкції та бінарні файли MongoDB призначені лише для 64 біт!
sumitkm

2
це вже давно, 32-бітний мав суворі обмеження (2 ГБ максимум даних), особливо в системі зберігання MMAP, не впевнений, що WiredTiger коли-небудь підтримував це
Адам C

3
знайшов його - відмовився від підтримки 32-розрядної версії 3.0: docs.mongodb.com/manual/release-notes/3.0-compatibility/…
Adam C

1
Спасибі за це Адам. На останньому кроці я б скористався, sudo systemctl start mongodоскільки SystemD є системою init для Debian за замовчуванням, починаючи з Джессі, і serviceстав просто сценарієм сумісності.
Рафа


3

Схоже, mongodb 3.4 ще не має бінарних файлів для розтягування debian у своєму офіційному сховищі 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

Я створив сховище Github, щоб легко створити останню версію речей MongoDB. Він буде будувати все внутрішньо, а не залежно від підходу, включаючи системну службу.



0

Я використовую Debian 9 Stretch

Я завантажив цю версію MongoDB: Linux 64-розрядна спадщина 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 , щоб монгод працював належним чином.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.