it-swarm.com.de

Apt-get schlägt bei der Installation von mongodb am 16.04 oder 18.04 fehl

Wenn ich versuche, Mongodb mithilfe der Anweisungen unter https://docs.mongodb.com/getting-started/Shell/tutorial/install-mongodb-on-ubuntu/ unter 16.04 zu installieren, erhalte ich beim Installationsschritt das folgende Ergebnis:

[email protected]:~$ Sudo apt-get install mongodb-org
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package mongodb-org is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'mongodb-org' has no installation candidate

Ich habe den HTTP-Verkehr mit Wireshark überprüft und festgestellt, dass der einzige Verkehr ein HTTP-GET für die Liste und eine HTTP-304-Antwort war, was darauf hindeutet, dass das Problem in meinen lokalen Konfigurationsdateien liegt. Meine sources.list.d-Datei enthält den folgenden Eintrag:

mongodb-org-3.4.list

Was muss ich tun, um dieses Problem weiterhin zu beheben?

BEARBEITEN: Ich habe versucht, dies auf einer neuen Installation von 16.04 unter VirtualBox erneut zu tun. Ich habe den Schlüssel abgerufen, die Listendatei erstellt und Sudo apt update mit den folgenden Ergebnissen ausgeführt:

[email protected]:~$ Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
[Sudo] password for jonathan: 
Executing: /tmp/tmp.uWYpRUWfjK/gpg.1.sh --keyserver
hkp://keyserver.ubuntu.com:80
--recv
0C49F3730359A14518585931BC711F9BA15703C6
gpg: requesting key A15703C6 from hkp server keyserver.ubuntu.com
gpg: key A15703C6: public key "MongoDB 3.4 Release Signing Key <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
[email protected]:~$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | Sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse
[email protected]:~$ Sudo apt update
Ign:1 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 InRelease
Get:2 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release [3 462 B]
Hit:3 http://mx.archive.ubuntu.com/ubuntu xenial InRelease               
Get:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]                   
Get:5 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release.gpg [801 B]                      
Get:6 http://mx.archive.ubuntu.com/ubuntu xenial-updates InRelease [95.7 kB]           
Ign:5 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release.gpg                       
Get:7 http://mx.archive.ubuntu.com/ubuntu xenial-backports InRelease [92.2 kB]                    
Reading package lists... Done      
W: GPG error: http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY D68FA50FEA312927
E: The repository 'http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
[email protected]:~$ 

Wie Sie sehen, wurde der Schlüssel für Mongodb 3.4 und nicht für Mongodb 3.2 abgerufen. Dies erklärt den GPG-Fehler bei der Aktualisierung von apt. Weiß jemand, wo man den richtigen Schlüssel bekommt?

22
Jonathan

Ubuntu 16.04 und MongoDB 4.0

Entfernen Sie zunächst alle vorhandenen Repository-Dateien für MongoDB.

Sudo rm /etc/apt/sources.list.d/mongodb*.list

Fügen Sie als Nächstes den Schlüssel hinzu: (ohne den Schlüssel wird das Repository nicht geladen)

Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4

Erstellen Sie nun eine neue MongoDB-Repository-Listendatei:

Sudo bash -c 'echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-4.0.list'

Schließen Sie die Installation mit dem Update der Repositorys ab und installieren Sie:

Sudo apt update
Sudo apt install mongodb-org

Aktivieren Sie den Dienst mongod und starten Sie ihn:

systemctl enable mongod.service
systemctl start mongod.service

Überprüfen Sie Ihre Mongodb-Version:

~$ mongo --version
MongoDB Shell version v4.0.5
git version: 3739429dd92b92d1b0ab120911a23d50bf03c412
OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
allocator: tcmalloc
modules: none
build environment:
    distmod: ubuntu1604
    distarch: x86_64
    target_Arch: x86_64

Überprüfen Sie, ob der Dienst ausgeführt wird:

~$ systemctl status mongod.service
● mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-01-21 00:33:51 MST; 7s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 2906 (mongod)
   CGroup: /system.slice/mongod.service
           └─2906 /usr/bin/mongod --config /etc/mongod.conf

Ubuntu 18.04 und MongoDB 4.0

MongoDB 4.0 wird als stabil angezeigt, wobei 4.1 vorerst als Vorschau dient.

Entfernen Sie zuerst MongoDB von der vorherigen Version, falls installiert:

Sudo apt remove --autoremove mongodb-org

Entfernen Sie alle Mongodb-Repo-Listendateien:

Sudo rm /etc/apt/sources.list.d/mongodb*.list
Sudo apt update

Fügen Sie nun den neuen Schlüssel hinzu:

Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4

Fügen Sie das neue Repository hinzu:

Sudo bash -c 'echo "deb [Arch=AMD64] http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-4.0.list'

Installieren Sie MongoDB

Sudo apt update
Sudo apt install mongodb-org

Aktivieren und starten Sie den Serverdienst mongod:

systemctl enable mongod.service
systemctl start mongod.service

Überprüfen Sie Ihre Installation:

~$ mongo --version
MongoDB Shell version v4.0.3
git version: 7ea530946fa7880364d88c8d8b6026bbc9ffa48c
OpenSSL version: OpenSSL 1.1.0g  2 Nov 2017
allocator: tcmalloc
modules: none
build environment:
    distmod: ubuntu1804
    distarch: x86_64
    target_Arch: x86_64

Sie können auch überprüfen, ob Ihr Dienst gestartet wurde:

~$ systemctl status mongod.service
● mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: e
   Active: active (running) since Sun 2018-10-07 12:33:46 MDT; 2min 34s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 5573 (mongod)
   CGroup: /system.slice/mongod.service
           └─5573 /usr/bin/mongod --config /etc/mongod.conf

Hoffe das hilft!

62
Terrance

Neben der Antwort von @Terrance finden Sie hier auch den passenden Signaturschlüssel. Beispiel gilt in diesem Fall für mongodb, kann aber in ähnlicher Weise für jedes andere Paket verwendet werden. Bevor Sie Zeilen aus der Antwort von @Terrance ausführen:

  1. Gehe zu buntu Key Server , um den aktuellen Schlüssel zu finden

  2. Suchen Sie nach der gewünschten Zeichenfolge (Mongodb für den Fall) und senden Sie das erste Formular ab (Sie benötigen dafür kein zweites Formular) - klicken Sie auf die Schaltfläche Search!

enter image description here

  1. Suchen Sie in der angegebenen Suchliste nach Ihrer Version (in meinem Beispiel war es hier 3.4)

enter image description here

  1. Sie können dort zwei Zeilen mit Schlüsseln sehen. Konzentrieren Sie sich auf das aktuellste Datum. Die erste Zeichenfolge ist das Erstellungsdatum, die zweite das Fälligkeitsdatum.

  2. Verwenden Sie das in Punkt 5 erwähnte Zeichen aus der Zeile - falls es aus dem Bild stammt, wäre es A15703C6

  3. Fahren Sie mit Terrances Antwort fort, ob Sie das Paket installieren oder wie ich aktualisieren müssen

9
Tpojka

Auch bei mir hat nichts geklappt, also ging ich zu der Mogodb-Website und folgte diesen Anweisungen , um vom Tarball aus zu installieren:

Abhängigkeiten installieren:

Sudo apt-get install libcurl3 openssl

Laden Sie den Tarball von diese Seite herunter

cd in das Download-Verzeichnis oder wohin auch immer die Datei verschoben wurde, und extrahieren Sie sie:

tar -zxvf mongodb-linux-*-4.0.1.tgz

Die Binärdateien befinden sich im Verzeichnis bin der extrahierten Struktur. Sie können dieses Verzeichnis zu PATH hinzufügen oder die Dateien in /usr/local/bin oder einen anderen Pfad kopieren.

0
VishalTheBeast