Làm thế nào để cài đặt mongodb 3.4 trong debian Stretch (9)?


13

Tôi muốn cài đặt mongodb 3.4 trên debian Stretch. Thật không may, các gói kéo dài debian chỉ là mongodb 3.2 ( https://packages.debian.org/stretch/mongodb ).

Các tài liệu mongodb chỉ đề cập đến debian 7 và 8 ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/ ). Khi sử dụng các lệnh debian 8, tôi không thể cài đặt các gói mongodb vì chúng có các phụ thuộc không được đáp ứng.

Khi cho phép jessie-backports, lỗi phụ thuộc chưa được đáp ứng đã biến mất nhưng tôi không chắc liệu mình có nên làm điều này không và cài đặt các gói jessie-backports.

Làm thế nào bạn sẽ cài đặt mongodb 3.4 trên debian kéo dài?

Cảm ơn vì lời khuyên nào.


họ đã phát hành 3.6 cho kéo dài
eri

Câu trả lời:


16

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 mongodtệ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 libsslquá mới. Cả libssllibcryptocác thư viện đều được cài đặt bởi libsslgói và nó khá độc lập. Do đó, chúng ta có thể lấy gói Debian 8 libssl1.0.0và 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.


Cảm ơn các thủ thuật backports. Tôi đã nhận được package not foundcho mongodb-orgkhi nó hiểu ra mọi chuyện khi tôi tôi đã có bitiness sai của Linux. Có cho mình một VM 32 bit thay vì 64 bit ... rất tiếc! Các hướng dẫn và nhị phân MongoDB chỉ dành cho 64 bit!
sumitkm

2
Đó là trường hợp trong một thời gian dài, 32 bit có những hạn chế nghiêm trọng (dữ liệu tối đa 2 GB), đặc biệt là trong công cụ lưu trữ MMAP, không chắc WiredTiger đã từng hỗ trợ nó
Adam C

3
đã tìm thấy nó - đã bỏ hỗ trợ cho 32-bit với phiên bản 3.0: docs.mongodb.com/manual/release-notes/3.0-compabilities/ Kẻ
Adam C

1
Cảm ơn vì Adam này. Trong bước cuối cùng tôi sẽ sử dụng sudo systemctl start mongodvì SystemD là hệ thống init mặc định cho Debian kể từ Jessie và servicetrở thành tập lệnh tương thích.
Rafa


3

Dường như mongodb 3.4 chưa có nhị phân cho kéo dài debian trong kho apt chính thức của chúng. Cách tiếp cận tốt nhất của bạn có thể được xây dựng từ nguồn cho hệ thống của bạn.

Có hướng dẫn cụ thể trên trang này: https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source

Bạn cũng có thể thử sử dụng các gói Ubuntu cho Xenial, nhưng không có gì đảm bảo rằng nó sẽ hoạt động tốt và tôi nghĩ rằng xây dựng từ nguồn sẽ là một ý tưởng tốt hơn.


Tôi đã cố gắng xây dựng nó từ nguồn nhưng tôi nhận được SSLv2_method chưa được khai báo lỗi từ asio / ssl / impl / context.ipp. Có ý kiến ​​gì không?
Hamburml

1

Tôi chỉ gặp vấn đề này (mặc dù sử dụng debain 9).

Một chút đào bới tiết lộ rằng đó là do phiên bản cũ của gói debian không thể bị gỡ bỏ bởi trình cài đặt (tôi đã cố nâng cấp từ gói mongodb không chính thức do Debian cung cấp lên gói mongodb-org chính thức).

Giải pháp như sau:

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

Hy vọng điều này sẽ tiết kiệm thời gian cho ai đó!


0

Tôi đã tạo một kho lưu trữ Github để dễ dàng tự mình xây dựng phiên bản MongoDB mới nhất. Nó sẽ xây dựng mọi thứ bên trong thay vì phụ thuộc vào apt, bao gồm cả dịch vụ systemd.



0

Tôi đang sử dụng Debian 9 Stretch

Tôi đã tải xuống phiên bản MongoDB này: Linux 64-bit 64x

nhập mô tả hình ảnh ở đây

Tôi đã tải xuống thư mục máy tính để bàn của mình và đổi tên thành mongodb

Sau đó, bạn "cần" chuyển thư mục đã đổi tên gần đây của mình sang /opt/

mv mongodb /opt/

Bây giờ bạn có thể truy cập /opt/mongodb/binvà thực hiện một lệnh như thế:

./mongod --dbpath ./db/

Để thực hiện điều thú vị, bạn có thể tạo một liên kết tượng trưng, ví dụ, mongodđể /usr/local/bin/, như thế:

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

Bây giờ, trong thiết bị đầu cuối của bạn gõ lệnh, từ bất cứ đâu:

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

Bạn cần chỉ định --dbpath để mongod hoạt động chính xác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.