Ich folgte den Anweisungen , um MongoDB über apt-get zu installieren. Es gab einen Schluckauf mit der Überprüfung, aber das Aufspüren auf StackExchange zeigte an, dass es sich um ein bekanntes Problem beim Signaturprozess handelte, sodass ich apt-get install mongodb
ohne das -y
Flag erneut ausgeführt wurde. Die Installation war dann erfolgreich, oder so schien es. Aber als ich versuchte, den Dienst zu starten, passierte Folgendes:
$ sudo service mongod start
[sudo] password for mark:
Failed to start mongod.service: Unit mongod.service not found.
$ sudo service mongod status
● mongod.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
Sicher genug, die Datei /etc/init.d/mongod
existiert nicht. In den Installationsanweisungen wird ausdrücklich angegeben, dass diese Datei bereitgestellt wird:
Das mongodb-org-Paket enthält verschiedene Init-Skripte, einschließlich des Init-Skripts /etc/init.d/mongod.
Die Datei existiert in den Quellen auf GitHub. Also kann ich weitermachen. Aber ich möchte wissen, warum eine kritische Konfigurationsdatei in einem erfolgreich installierten Paket fehlt. (Nennen Sie mich einen Komplettisten.)
Meine Ubuntu-Version ist 16.10, was offiziell nicht unterstützt wird. Ich würde nicht denken, dass das die Ursache sein könnte. Könnte die Release-Version wirklich schuld sein? Oder war es ein Fehler, die Pakete ohne Vorzeichen zu installieren? Oder ist das Paket selbst kaputt? Oder ist hier noch etwas los?
Antworten:
Ich habe mich einfach geirrt Die Release-Inkompatibilität ist das Problem. Es scheint, dass ein Skript nach der Installation stillschweigend fehlgeschlagen ist, weshalb die fehlende Datei nicht vorhanden war.
Die Lösung war dieser Frage sehr ähnlich , was darauf hindeutet, dieses Skript auszuführen .
Ich habe geringfügige Änderungen am Skript vorgenommen, entsprechend einer Änderung der Standarddateispeicherorte für MongoDB 3.2.6. (Die Änderungen sind nicht unbedingt erforderlich. Ich mag Cruft einfach nicht.) Bisher befanden sich Datendateien in
/data/db/
. Der Standardspeicherort ist jetzt/var/lib/mongodb/
und der alte Speicherort wird überhaupt nicht mehr verwendet. Also habe ich die Zeilen im Skript entfernt, die auf diesen Pfad verweisen.Ubuntu verwendet jetzt standardmäßig systemd anstelle von Upstart und wird daher
/var/run/mongodb/
nicht mehr benötigt. Ich habe diese Zeilen nur auskommentiert, anstatt sie zu entfernen. Wenn Sie Upstart aus irgendeinem Grund immer noch verwenden, müssen Sie die drei Zeilen, die auf diesen Pfad verweisen, auskommentieren.Das aktualisierte Skript sieht folgendermaßen aus:
quelle