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 ).
Die Mongodb-Dokumentation erwähnt nur Debian 7 und 8 ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/ ). Bei der Verwendung von Debian 8-Befehlen kann ich keine Mongodb-Pakete installieren, da diese unerfüllte Abhängigkeiten haben.
Wenn Sie jessie-backports zulassen, ist der Fehler mit den nicht erfüllten Abhängigkeiten weg, aber ich bin mir nicht sicher, ob ich dies tun und die jessie-backports-Pakete in stretch installieren soll.
Wie würden Sie Mongodb 3.4 auf Debian Stretch installieren?
Danke für jeden Rat.
Antworten:
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 einzige tatsächlich fehlende Abhängigkeit (
libssl1.0.0
) installieren . Zum Nachschlagen, um herauszufinden, was fehlte, habe ich diemongod
Binärdatei heruntergeladen und mir Folgendes angesehenldd
:Wenn Sie sich ansehen, was in Debian 9 installiert ist, haben wir im Grunde nur
libssl
zu neue Versionen davon . Dielibssl
undlibcrypto
-Bibliotheken werden beide vomlibssl
Paket installiert und sind ziemlich eigenständig. Daher können wir uns einfach das Debian 8-libssl1.0.0
Paket schnappen und es installieren.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 unter Downloads) und installieren Sie sie dann mit
dpkg
:Danach überprüfen wir noch einmal
ldd
:Erfolg! Versuchen wir nun die Paketinstallation von
mongodb-org
:Lassen Sie uns abschließend sicherstellen, dass der Dienst gestartet wird und wir eine Verbindung mit einer Shell herstellen können:
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 Lösung.
quelle
package not found
für ,mongodb-org
wenn es bei mir dämmerte ich die falsche bitiness von Linux hatte. Habe mir eine 32-Bit-VM anstelle von 64-Bit besorgt ... Hoppla! MongoDB-Anweisungen und Binärdateien sind nur für 64-Bit!sudo systemctl start mongod
da SystemD das Standard-Init-System für Debian seit Jessie ist undservice
nur ein Kompatibilitätsskript wurde.Es scheint, dass Mongodb 3.4 noch keine Binärdateien für Debian Stretch in seinem offiziellen Apt-Repository hat. Ihr bester Ansatz könnte darin bestehen, aus dem Quellcode für Ihr System zu erstellen.
Auf dieser Seite finden Sie spezifische 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 halte es für eine bessere Idee, aus dem Quellcode zu erstellen.
quelle
Ich hatte gerade dieses Problem (obwohl ich Debain 9 benutze).
Ein bisschen Graben ergab, dass es an der Tatsache lag, dass die ältere, von Debian gepackte Version vom Installer nicht entfernt werden konnte (ich habe versucht, ein Upgrade von dem von Debian bereitgestellten inoffiziellen Mongodb-Paket auf die offiziellen Mongodb-org-Pakete durchzuführen).
Die Lösung war die folgende:
Hoffe das spart jemand etwas Zeit!
quelle
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.
quelle
Ab sofort ist das Paket in Debian verfügbar -
https://packages.debian.org/stretch/mongodb-server
Installieren Sie es einfach, indem Sie ausführen
# sudo apt install mongodb-server
quelle
Ich verwende Debian 9 Stretch
Ich habe diese Version von MongoDB heruntergeladen: Linux 64-Bit Legacy 64x
Ich habe in meinen Desktop-Ordner heruntergeladen und ihn in umbenannt
mongodb
Danach müssen Sie Ihren zuletzt umbenannten Ordner "verschieben"
/opt/
mv mongodb /opt/
Jetzt können Sie auf
/opt/mongodb/bin
einen Befehl wie diesen zugreifen und ihn ausführen:./mongod --dbpath ./db/
Um die Sache Spaß zu machen, könnten Sie einen symbolischen Link, zum Beispiel erstellen,
mongod
zu/usr/local/bin/
, wie folgt aus: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 --dbpath angeben , damit der Mongod ordnungsgemäß funktioniert.
quelle