วิธีการติดตั้ง mongodb 3.4 ใน debian stretch (9)


13

ฉันต้องการติดตั้ง mongodb 3.4 บนเดเบียนยืด น่าเสียดายแพ็คเกจเดเบียนยืดมีเพียง mongodb 3.2 ( https://packages.debian.org/stretch/mongodb )

เอกสาร MongoDB กล่าวถึงเดเบียน 7 และ 8 เท่านั้น ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/ ) เมื่อใช้คำสั่ง debian 8 ฉันไม่สามารถติดตั้งแพ็คเกจ mongodb ได้เนื่องจากมีการพึ่งพาแบบไม่คาดคิด

เมื่ออนุญาตให้ jessie-backport เกิดข้อผิดพลาดในการพึ่งพาแบบ unmet แต่ฉันไม่แน่ใจว่าควรจะทำอย่างไรและติดตั้งแพ็คเกจ jessie-backport อย่างละเอียด

คุณจะติดตั้ง mongodb 3.4 บนเดเบียนยืดได้อย่างไร?

ขอบคุณสำหรับคำแนะนำใด ๆ


พวกเขาปล่อย 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 Jesse และ arch ของคุณสำหรับเวอร์ชันอื่น)

หากต้องการติดตั้งแพ็คเกจให้ดาวน์โหลดไฟล์ (ในกรณีของฉันคือไปที่ดาวน์โหลด) จากนั้นติดตั้งด้วย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 

และที่นั่นคุณมี - แพ็คเกจของ Jesse กำลังทำงานเกี่ยวกับการยืดกล้ามเนื้อ ฉันแน่ใจว่าจะมีการเปิดตัวอย่างเป็นทางการในไม่ช้าซึ่งจะทำให้สิ่งนี้ล้าสมัย แต่ในระหว่างนี้นี่เป็นวิธีแก้ปัญหาที่ค่อนข้างเจ็บปวด


ขอบคุณสำหรับเคล็ดลับ Backport ผมได้รับpackage not foundสำหรับmongodb-orgเมื่อมันผุดขึ้นเมื่อฉันฉันมี bitiness ไม่ถูกต้องของลินุกซ์ มีตัวเอง 32 บิต VM แทน 64 บิต ... อุ๊ปส์! คำสั่ง MongoDB และไบนารีมีไว้สำหรับ 64 บิตเท่านั้น!
sumitkm

2
เป็นเช่นนี้มานานแล้ว 32 บิตมีข้อ จำกัด รุนแรง (ข้อมูลสูงสุด 2GB) โดยเฉพาะอย่างยิ่งในเอ็นจิ้นการจัดเก็บ MMAP ไม่แน่ใจว่า WiredTiger เคยรองรับมันมาก่อน
Adam C

3
พบ - การสนับสนุนลดลงสำหรับ 32- บิตกับรุ่น 3.0: docs.mongodb.com/manual/release-notes/3.0-compatibility/…
อดัม C

1
ขอบคุณสำหรับอดัมนี้ ในขั้นตอนสุดท้ายฉันจะใช้sudo systemctl start mongodเนื่องจาก SystemD เป็นระบบเริ่มต้นเริ่มต้นสำหรับ Debian ตั้งแต่ Jessie และserviceกลายเป็นสคริปต์ความเข้ากันได้
Rafa


3

ปรากฏว่า mongodb 3.4 ยังไม่มีไบนารีสำหรับการขยายเดเบียนในพื้นที่เก็บข้อมูล apt อย่างเป็นทางการของพวกเขา วิธีที่ดีที่สุดของคุณอาจสร้างจากแหล่งที่มาสำหรับระบบของคุณ

มีคำแนะนำเฉพาะในหน้านี้: https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source

คุณสามารถลองใช้แพ็คเกจ Ubuntu สำหรับ Xenial แต่ไม่รับประกันว่าจะทำงานได้อย่างถูกต้องและฉันคิดว่าการสร้างจากแหล่งที่มาจะเป็นแนวคิดที่ดีกว่า


ฉันพยายามสร้างมันจากแหล่งที่มา แต่ฉันได้รับ SSLv2_method ไม่ได้รับการประกาศข้อผิดพลาดจาก asio / ssl / impl / context.ipp ความคิดใด ๆ
Hamburml

1

ฉันเพิ่งมีปัญหานี้ (แม้ว่าใช้ debain 9)

บิตของการขุดพบว่าเป็นเพราะความจริงที่ว่ารุ่นเดเบียนที่เก่ากว่าไม่สามารถลบได้โดยผู้ติดตั้ง

การแก้ปัญหาคือต่อไปนี้:

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 เวอร์ชั่นล่าสุดด้วยตัวคุณเอง มันจะสร้างทุกอย่างภายในแทนที่จะขึ้นอยู่กับ apt รวมถึงบริการ systemd



0

ฉันใช้ Debian 9 Stretch

ฉันดาวน์โหลด MongoDB รุ่นนี้: Linux 64-bit legacy 64x

ป้อนคำอธิบายรูปภาพที่นี่

ฉันดาวน์โหลดไปยังโฟลเดอร์เดสก์ท็อปของฉันและเปลี่ยนชื่อเป็น mongodb

หลังจากนั้นคุณ "ต้อง" เพื่อย้ายโฟลเดอร์ที่ถูกเปลี่ยนชื่อล่าสุดไป /opt/

mv mongodb /opt/

ตอนนี้คุณสามารถเข้าถึง/opt/mongodb/binและดำเนินการคำสั่งดังนี้:

./mongod --dbpath ./db/

ในการทำให้เรื่องสนุกคุณสามารถสร้าง symlink ได้เช่นmongodเพื่อ/usr/local/bin/:

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

ตอนนี้ในเทอร์มินัลของคุณพิมพ์คำสั่งจากที่ใดก็ได้:

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

คุณต้องระบุ --dbpath เพื่อให้ mongod ทำงานอย่างถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.