Я устанавливаю MongoDB на машину Ubuntu 14.04, используя инструкции по адресу: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
Итак, я бегу:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
А потом:
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
С последующим:
sudo apt-get update
Затем в конце обновления я получаю следующее предупреждение:
W: Ошибка GPG: http://repo.mongodb.org trusty / mongodb-org / 3.2 Release: следующие подписи недействительны: BADSIG D68FA50FEA312927 MongoDB 3.2 Release Signing Key
Если я проигнорирую предупреждение и попытаюсь запустить:
sudo apt-get install -y mongodb-org
Я получил:
ВНИМАНИЕ: следующие пакеты не могут быть аутентифицированы!
mongodb-org-shell mongodb-org-server mongodb-org-mongos mongodb-org-tools mongodb-org E: есть проблемы, и -y использовался без --force-yes
Есть идеи, как решить? Спасибо!
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
Ответы:
Обновите все ключи с истекшим сроком действия с сервера ключей Ubuntu одной командой:
Объяснение команды:
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
- обновляет ключи с сервера ключей Ubuntu на найденные просроченные.Источник
источник
--recv-key
ключа - просроченный.apt-key list
больше не совместим с командами в этом ответе, которые его обрабатывают. Вместо этого бегиsudo apt-key list | grep -A 1 expired
. Скопируйте 40-значный отпечаток пальца. Затем запустите команду,sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $FINGERPRINT
где$FINGERPRINT
находится скопированное вами значение (если оно содержит пробелы, заключите его в кавычки).Похоже, вам нужно повторить шаги по установке MongoDB. Сначала удалите все существующие файлы репозитория для MongoDB. Сделайте как показано ниже.
Далее добавляем ключ: (без ключа репозиторий не загрузится).
Теперь создайте новый файл списка репозиториев MongoDB:
После добавления деталей репозитория нам нужно обновить список пакетов.
Теперь установите MongoDB.
Надеюсь это поможет !
источник
Вам не нужно переустанавливать пакеты mongo, просто измените ключ следующим образом:
Перечислите ключи, чтобы подтвердить, что срок его действия истек:
Заменить ключ:
Номер 0xd68fa50fea312927 - это текущий действительный идентификатор ключа (срок действия истекает 2019-10-09), как вы можете проверить здесь .
источник
Похоже, что версия 3.2.1 была выпущена 11 января 2016 года, и с этого момента подпись пакетов плохая. Подпись пакетов накануне прошла нормально.
ссылки: https://jira.mongodb.org/browse/SERVER/fixforversion/15908/?selectedTab=com.atlassian.jira.jira-projects-plugin:version-summary-panel
Вы можете либо добавить параметр --force-yes, либо подождать несколько часов, пока команда mongodb увидит и исправит проблему.
Там уже есть билет: https://jira.mongodb.org/browse/SERVER-22144
источник
Я также столкнулся с этой проблемой при установке MongoDB 4.0 на Ubuntu 16.04. Так я и сделал.
sudo rm /etc/apt/sources.list.d/mongodb*.list
- удалить все существующие файлы для MongoDBsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4
- добавить ключ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'
- создать новый файл списка репозиториев MongoDBТеперь завершите установку обновлением репозиториев, затем установите MongoDB, включите
mongod
службу и запустите ее, и, наконец, проверьте версию MongoDB:источник
Я также столкнулся с этой проблемой при установке MongoDB 3.2 на моем ubuntu 16.04 с помощью следующих команд. Приведенное ниже решение предоставляется как вопрос, связанный с установкой MongoDB v3.2.
После выполнения указанной выше команды обновления я обнаружил следующие предупреждения
При дальнейшем исследовании с использованием приведенной ниже команды для вывода списка всех ключей
Он показывает, что срок действия текущего ключа истек 2017-10-08.
Это также имело смысл, поскольку текущая стабильная версия MongoDB теперь (3.4.9).
Чтобы сначала решить проблему, сделаем небольшую очистку (необязательно)
удаляем старый ключ добавлен
sudo apt-key list // Список всех ключей
sudo apt-key del EA312927 // Найдите uid ключа, который нужно удалить
список APT-ключей | grep Mongodb // Проверяем, если он удален
Теперь мы удаляем репозиторий MongoDB, добавленный в /etc/apt/sources.list.d
sudo rm /etc/apt/sources.list.d/mongodb*.list
Теперь мы устанавливаем последнюю стабильную версию MongoDB (3.4.9), используя следующие команды
Импортируйте открытый ключ, используемый диспетчером пакетов Ubuntu
Создайте список файлов для mongoDB, чтобы получить текущий репозиторий
Установить MongoDB
источник
У меня была такая же проблема, и я решил ее, установив mongodb с помощью метода tarball. Подробную информацию см. По ссылке ниже.
https://docs.mongodb.org/manual/tutorial/install-mongodb-on-linux/
Добавление деталей ниже
экспорт PATH = / bin: $ PATH
затем запустите mongod (может потребоваться указать путь к базе данных)
источник
Собственно, для решения проблемы очень важно следующее
источник
У меня была такая же проблема, поэтому я сделал:
root@skarabi:~# apt remove mongodb-org
Затем:
root@skarabi:~# sudo rm /etc/apt/sources.list.d/mongodb*.list
После :
root@skarabi:~# apt update
источник
apt remove
удалять (удалять) Mongo с вашего компьютера, просто чтобы получить самый новый ключ. Вы уничтожите всю свою базу данных, чтобы попытаться получить обновленный ключ для подходящих источников.Используя ответ dlopatin, я придумал это для Ubuntu 18.04, поскольку этот код больше не работает:
sudo apt-key list
grep -A 1 "\[expired:"
^\s\{1,10\}
, и выберите буквенно-цифровые символы\(\w*\)
, замените эти строки выбранной группой, которая является отпечатком пальца\1
, повторите для всех возвращенных строкg
, затем распечатайте отпечаток пальцаp
. Это дает:sed -ne 's|^\s\{1,10\}\(\w*\)|\1|gp'
xargs -d '\n'
, затем передайте отпечатки пальцев в качестве аргументов в apt-key, чтобы обновить их:sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
что дает вам:xargs -d '\n' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
Надеюсь, это ясно. Игнорируйте предупреждение о разборе вывода apt-key :)
источник
У меня возникла аналогичная проблема, и я получил следующую ошибку при установке MongoDB 4.2 на экземпляр Ubuntu 18.04 в Google Cloud.
Решение, которое сработало у меня, заключалось в выполнении следующей команды для получения ключа. Я нашел это на официальных страницах выпуска Jira MongoDB.
Я нашел это решение в официальных проблемах Jira MongoDB. Вот ссылка на выпуск.
источник