MongoDB GPG-недопустимые подписи
Я устанавливаю 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 Отпустите Ключ Подписи
если я проигнорирую предупреждение и попытаюсь запустить:
sudo apt-get install -y mongodb-org
Я:
внимание: следующие пакеты не могут быть аутентифицированы!
в MongoDB-орг-оболочки в MongoDB-орг-сервера в MongoDB-орг-монголов mongodb-org-tools mongodb-org E: есть проблемы и-y был использован без --Force-да
любые идеи о том, как решить? Спасибо!
7 ответов:
похоже, версия 3.2.1 была выпущена 11 / Jan / 2016, и подпись пакетов с этого момента плохая. Подписи пакетов были прекрасны накануне.
вы можете либо добавить параметр --force-yes, либо подождать несколько часов, когда команда mongodb увидит и исправит проблему.
там уже есть билет туда:https://jira.mongodb.org/browse/SERVER-22144
обновить все истекшие ключи от Ubuntu key server в одной команде:
sudo apt-key list | \ grep "expired: " | \ sed -ne 's|pub .*/\([^ ]*\) .*||gp' | \ xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
командная объяснение:
sudo apt-key list
- перечисляет все ключи, установленные в системе;grep "expired: "
- оставляйте только строки с истекшим сроком действия ключей;sed -ne 's|pub .*/\([^ ]*\) .*||gp'
- ключи экстракты;xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
- обновляет ключи от Ubuntu key server по найденным просроченным.
Похоже, вам нужно повторить шаги установки для MongoDB. Во-первых, удалите все существующие файлы репозитория для MongoDB. Сделайте, как показано ниже.
$ sudo rm /etc/apt/sources.list.d/mongodb*.list
Далее добавьте ключ (без ключа в хранилище не загружается).
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
Теперь создайте новый файл списка репозитория 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
после добавления сведений о репозитории нам необходимо обновить список пакетов.
$ sudo apt-get update
теперь установите MongoDB.
sudo apt install mongodb-org
надеюсь, что это помогает !
вам не нужно переустановить пакеты mongo, а просто изменить ключ следующим образом:
список ключей для подтверждения его действия истек:
apt-key list | grep "expired:"
заменить ключ:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xd68fa50fea312927
число 0xd68fa50fea312927 является текущим допустимым идентификатором ключа (истекает в 2019-10-09), как вы можете проверить здесь.
Я также столкнулся с этой проблемой при установке MongoDB 3.2 на моем ubuntu 16.04 с помощью следующих команд. Ниже решение предоставляется как вопрос, связанный с установкой V3. 2 MongoDB
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
после выполнения вышеуказанной команды обновления я нашел следующие предупреждения
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.
при дальнейшем исследовании с помощью приведенной ниже команды, чтобы перечислить все ключи
sudo apt-key list
это показывает, что текущий ключ истек 2017-10-08
pub 4096R/EA312927 2015-10-09 [expired: 2017-10-08] uid MongoDB 3.2 Release Signing Key <packaging@mongodb.com>
это также имело смысл, поскольку текущая стабильная версия MongoDB теперь (3.4.9).
чтобы исправить проблему сначала мы делаем небольшую очистку (необязательно)
мы удаляем старый ключ добавил
sudo apt-key list / / список всех ключей
sudo apt-key del EA312927 / / найти uid ключа для удаления
apt-key list | grep Mongodb / / проверьте, если его удалено
теперь мы удаляем РЕПО MongoDB, добавленное в /etc/apt/sources.список.d
sudo rm/etc/apt / sources.список.d / mongodb*.список
теперь мы устанавливаем последнюю стабильную версию MongoDB (3.4.9), используя следующие команды
импорт открытого ключа, используемого менеджером пакетов Ubuntu
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
создать список файлов для mongoDB, чтобы получить текущий репозиторий
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
Установить MongoDB
sudo apt-get update sudo apt-get install mongodb-org
У меня была та же проблема, и я решил ее, установив mongodb с помощью метода tarball. Обратитесь к ссылке ниже для деталей.
https://docs.mongodb.org/manual/tutorial/install-mongodb-on-linux/
добавление деталей ниже
- curl-O https://fastdl.mongodb.org/linux/mongodb-linux-i686-3.2.0.tgz
- tar-zxvf mongodb-linux-i686-3.2.0.tgz
- mkdir-p mongodb && cp-R-n mongodb-linux-i686-3.2.0 / mongodb
путь экспорта= / bin:$PATH
затем запустите mongod (возможно, необходимо установить путь к БД)