Lỗi khi bạn cố gắng sử dụng các hướng dẫn Debian 8 cho thấy rất nhiều phụ thuộc bị thiếu, nhưng thực tế sẽ hoạt động nếu bạn cài đặt phụ thuộc bị thiếu thực tế duy nhất ( libssl1.0.0
). Để tham khảo, để tìm ra những gì còn thiếu, tôi đã tải xuống mongod
tệp nhị phân và xem qua 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*
Nếu bạn có cái nhìn về những gì được cài đặt trong Debian 9, về cơ bản chúng ta chỉ có những phiên bản libssl
quá mới. Cả libssl
và libcrypto
các thư viện đều được cài đặt bởi libssl
gói và nó khá độc lập. Do đó, chúng ta có thể lấy gói Debian 8 libssl1.0.0
và cài đặt nó.
Phiên bản amd64 của gói có thể được tìm thấy ở đây (chỉ Google cho libssl1.0.0 Jesse và vòm của bạn cho phiên bản khác).
Để cài đặt gói đó, hãy tải xuống tệp (trong trường hợp của tôi là Tải xuống) và sau đó cài đặt nó với 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) ...
Khi hoàn thành, chúng tôi nhanh chóng kiểm tra lại 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*
Sự thành công! Bây giờ hãy thử cài đặt lại gói 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) ...
Cuối cùng, hãy đảm bảo dịch vụ bắt đầu và chúng tôi có thể kết nối với trình bao:
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
Và ở đó bạn có nó - các gói Jesse hoạt động trên Stretch. Tôi chắc chắn rằng sẽ sớm có một bản phát hành chính thức sẽ làm cho điều này trở nên lỗi thời, nhưng trong khi đó, đây là một cách giải quyết tương đối không đau.