J'installe MongoDB sur une machine Ubuntu 14.04 en suivant les instructions fournies à: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
Alors je cours:
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
Puis:
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | Sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Suivi par:
Sudo apt-get update
J'obtiens ensuite l'avertissement suivant à la fin de la mise à jour:
W: erreur GPG: http://repo.mongodb.org trusty/mongodb-org/3.2 Publication: Les signatures suivantes étaient invalides: BADSIG D68FA50FEA312927 Clé de signature de publication de MongoDB 3.2
Si j'ignore l'avertissement et essaie de courir:
Sudo apt-get install -y mongodb-org
Je reçois:
AVERTISSEMENT: Les packages suivants ne peuvent pas être authentifiés!
mongodb-org-shell mongodb-org-serveur mongodb-org-mongos mongodb-org-tools mongodb-org E: Il y a des problèmes et -y a été utilisé sans --force-yes
Des idées sur la façon de résoudre? Merci!
Mettez à jour toutes les clés expirées du serveur de clés Ubuntu en une seule commande:
Sudo apt-key list | \
grep "expired: " | \
sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' | \
xargs -n1 Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
Explication de la commande:
Sudo apt-key list
- répertorie toutes les clés installées dans le système;grep "expired: "
- ne laisse que des lignes avec des clés expirées;sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp'
- extrait les clés;xargs -n1 Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
- met à jour les clés du serveur de clés Ubuntu par celles trouvées expirées.On dirait que vous devez refaire les étapes d'installation pour MongoDB. Tout d’abord, supprimez tout fichier de référentiel existant pour MongoDB. Faites comme ci-dessous.
$ Sudo rm /etc/apt/sources.list.d/mongodb*.list
Ensuite, ajoutez la clé: (sans la clé, le référentiel ne sera pas chargé).
$ Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
Créez maintenant un nouveau fichier de liste de référentiels MongoDB:
$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | Sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Après avoir ajouté les détails du référentiel, nous devons mettre à jour la liste des packages.
$ Sudo apt-get update
Maintenant, installez MongoDB.
Sudo apt install mongodb-org
J'espère que cela t'aides !
Vous n'avez pas besoin de réinstaller les paquets mongo, mais changez simplement la clé comme suit:
Répertoriez les clés pour confirmer son expiration:
apt-key list | grep "expired:"
Remplacez la clé:
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xd68fa50fea312927
Le nombre 0xd68fa50fea312927 est l'ID de clé valide actuel (expire le 2019-10-09), comme vous pouvez le vérifier ici .
Il semble que la version 3.2.1 soit sortie le 11/Jan/2016 et que la signature des paquets est mauvaise depuis ce moment. Les colis étaient bien signés la veille.
Vous pouvez soit ajouter l'option --force-yes, soit attendre quelques heures que l'équipe de mongodb voit et corrige le problème.
Il y a déjà un billet là-bas: https://jira.mongodb.org/browse/SERVER-22144
J'ai également rencontré ce problème lors de l'installation de MongoDB 3.2 sur mon Ubuntu 16.04 à l'aide des commandes ci-dessous. La solution ci-dessous est fournie en tant que question liée à l'installation de MongoDB en version 3.2.
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | Sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Sudo apt-get update
Après avoir exécuté la commande de mise à jour ci-dessus, j'ai trouvé les avertissements suivants
W: GPG error: http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release: The following signatures were invalid: KEYEXPIRED 1507497109
W: The repository 'http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release' is not signed.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
En poursuivant vos recherches en utilisant la commande ci-dessous pour lister toutes les clés
Sudo apt-key list
Cela montre que la clé actuelle a expiré le 2017-10-08
pub 4096R/EA312927 2015-10-09 [expired: 2017-10-08]
uid MongoDB 3.2 Release Signing Key <[email protected]>
Cela était également logique étant donné que la version stable actuelle de MongoDB est maintenant (3.4.9).
Pour résoudre le problème en premier, nous effectuons un petit nettoyage (facultatif)
on enlève l'ancienne clé ajoutée
Sudo apt-key list // Liste toutes les clés
Sudo apt-key del EA312927 // Trouver l'identifiant de la clé à supprimer
liste apt-key | grep Mongodb // Vérifie s'il est supprimé
Maintenant, nous supprimons le dépôt MongoDB ajouté dans /etc/apt/sources.list.d
Sudo rm /etc/apt/sources.list.d/mongodb*.list
Maintenant, nous installons la dernière version stable de MongoDB (3.4.9) en utilisant les commandes ci-dessous.
Importer la clé publique utilisée par le gestionnaire de paquets Ubuntu
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Créer une liste de fichiers pour que mongoDB récupère le référentiel actuel
echo "deb [ Arch=AMD64,arm64 ] http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.4 multiverse" | Sudo tee /etc/apt/sources.list.d/mongodb-3.4.list
Installer MongoDB
Sudo apt-get update
Sudo apt-get install mongodb-org
J'ai eu le même problème et je l'ai résolu en installant mongodb avec la méthode tarball. Reportez-vous au lien ci-dessous pour plus de détails.
https://docs.mongodb.org/manual/tutorial/install-mongodb-on-linux/
Ajout de détails ci-dessous
export PATH =/bin: $ PATH
puis lancez mongod (le chemin de la base de données doit éventuellement être défini)
J'ai également rencontré ce problème lors de l'installation de MongoDB 4.0 sur Ubuntu 16.04. Alors j'ai fait.
Sudo rm /etc/apt/sources.list.d/mongodb*.list
- supprime tout fichier existant pour MongoDB
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4
- ajoute la clé
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'
- crée un nouveau fichier de liste de référentiels MongoDB
Maintenant, terminez l'installation avec une mise à jour des référentiels puis installez MongoDB, activez le service mongod
et démarrez-le, et enfin, vérifiez votre version de MongoDB:
Sudo apt update
Sudo apt install mongodb-org
systemctl enable mongod.service
systemctl start mongod.service
mongo --version
J'ai eu le même problème, alors j'ai:
root@skarabi:~# apt remove mongodb-org
Ensuite:
root@skarabi:~# Sudo rm /etc/apt/sources.list.d/mongodb*.list
Après :
root@skarabi:~# apt update
En fait, ce qui suit est très important pour résoudre le problème
$ Sudo rm /etc/apt/sources.list.d/mongodb*.list