it-swarm.com.de

Wie installiere ich Mongodb 3.4 in Debian Stretch (9)?

Ich möchte Mongodb 3.4 auf Debian Stretch installieren. Leider sind Debian-Stretch-Pakete nur Mongodb 3.2 ( https://packages.debian.org/stretch/mongodb ).

In den Mongodb-Dokumenten werden nur Debian 7 und 8 erwähnt ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/ ). Bei Verwendung von Debian 8-Befehlen kann ich keine Mongodb-Pakete installieren, da diese nicht erfüllte Abhängigkeiten aufweisen.

Wenn Sie Jessie-Backports zulassen, ist der Fehler mit nicht erfüllten Abhängigkeiten verschwunden, aber ich bin mir nicht sicher, ob ich dies tun und Jessie-Backports-Pakete in Stretch installieren soll.

Wie würden Sie Mongodb 3.4 auf Debian Stretch installieren?

Vielen Dank für jeden Rat.

13
Hamburml

Der Fehler, wenn Sie versuchen, die Debian 8-Anweisungen zu verwenden, deutet auf viele fehlende Abhängigkeiten hin, funktioniert jedoch tatsächlich, wenn Sie die einzelne tatsächlich fehlende Abhängigkeit installieren (libssl1.0.0). Um herauszufinden, was fehlte, habe ich als Referenz die Binärdatei mongod heruntergeladen und mir ldd angesehen:

[email protected]:~/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*

Wenn Sie sich ansehen, was in Debian 9 installiert ist, haben wir im Grunde nur Versionen von libssl, die zu neu sind. Die Bibliotheken libssl und libcrypto werden beide vom Paket libssl installiert und sind ziemlich eigenständig. Daher können wir einfach den Debian 8 libssl1.0.0 Paket und installiere das.

Die AMD64-Version des Pakets finden Sie hier (nur Google für libssl1.0.0 Jesse und Ihr Arch für eine andere Version).

Um dieses Paket zu installieren, laden Sie die Datei herunter (in meinem Fall Downloads) und installieren Sie sie dann mit dpkg:

[email protected]:~$ 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) ...

Nachdem dies abgeschlossen ist, überprüfen wir schnell ldd erneut:

[email protected]:~/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*

Erfolg! Versuchen wir nun die Paketinstallation von mongodb-org:

[email protected]:~$ 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) ...

Stellen wir abschließend sicher, dass der Dienst gestartet wird und wir eine Verbindung mit einer Shell herstellen können:

[email protected]:~$ Sudo systemctl start mongod
[email protected]:~$ mongo
MongoDB Shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.6 

Und da haben Sie es - Jesse-Pakete, die an Stretch arbeiten. Ich bin mir sicher, dass es bald eine offizielle Veröffentlichung geben wird, die dies überflüssig macht, aber in der Zwischenzeit ist dies eine relativ schmerzlose Problemumgehung.

16
Adam C

Es scheint, dass Mongodb 3.4 noch keine Binärdateien für Debian Stretch in seinem offiziellen Apt-Repository hat. Ihr bester Ansatz besteht möglicherweise darin, aus der Quelle für Ihr System zu erstellen.

Auf dieser Seite finden Sie spezielle Anweisungen: https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source

Sie könnten auch versuchen, die Ubuntu-Pakete für Xenial zu verwenden, aber es gibt keine Garantie dafür, dass dies ordnungsgemäß funktioniert, und ich denke, das Erstellen aus dem Quellcode wäre eine bessere Idee.

3
Ivan G.

Ich hatte gerade dieses Problem (obwohl ich Debain 9 benutze).

Ein bisschen Graben ergab, dass es an der Tatsache lag, dass die ältere Version mit Debian-Paket vom Installationsprogramm nicht entfernt werden konnte (ich habe versucht, ein Upgrade von einem inoffiziellen Mongodb-Paket, das von Debian bereitgestellt wurde, auf die offiziellen Mongodb-org-Pakete).

Die Lösung war die folgende:

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

Hoffe das spart jemandem etwas Zeit!

1
ricardo

Ab sofort ist das Paket in Debian verfügbar -

https://packages.debian.org/stretch/mongodb-server

Installieren Sie es einfach durch Ausführen

# Sudo apt install mongodb-server

0
Sanjay Vamja

Ich habe ein Github-Repository erstellt, um es einfach zu machen, die neueste Version von MongoDB-Dingen selbst zu erstellen. Es wird alles intern erstellt, anstatt von apt abhängig zu sein, einschließlich des systemd-Dienstes.

0
Patrik Laszlo

Ich benutze Debian 9 Stretch

Ich habe diese Version von MongoDB heruntergeladen: Linux 64-Bit Legacy 64x

(enter image description here

Ich habe in meinen Desktop-Ordner heruntergeladen und ihn in mongodb umbenannt.

Danach müssen Sie Ihren zuletzt umbenannten Ordner nach /opt/ Verschieben.

mv mongodb /opt/

Jetzt können Sie auf /opt/mongodb/bin Zugreifen und einen Befehl wie diesen ausführen:

./mongod --dbpath ./db/

Damit die Sache Spaß macht, können Sie einen Symlink erstellen, z. B. mongod zu /usr/local/bin/, So:

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

Geben Sie nun in Ihrem Terminal den Befehl von überall ein:

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

Sie müssen den --dbpath angeben, damit der Mongod ordnungsgemäß funktioniert.

0
Alex