Когда я пытаюсь установить mongodb, используя инструкции https://docs.mongodb.com/getting-started/shell/tutorial/install-mongodb-on-ubuntu/
16.04, я получаю следующий результат на этапе установки:
jonathan@poseidon:~$ 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
Я проверил HTTP-трафик с помощью Wireshark и обнаружил, что единственным трафиком был HTTP GET для списка и ответ HTTP 304, который предполагает, что проблема заключается в моих локальных файлах конфигурации. Мой файл sources.list.d содержит следующую запись:
mongodb-org-3.4.list
Что мне нужно сделать, чтобы продолжить устранение этой проблемы?
РЕДАКТИРОВАТЬ: я попытался сделать это снова на новой установке 16.04 под VirtualBox. Я получил ключ, создал файл списка и сделал sudo apt update
со следующими результатами:
jonathan@Ubuntu-16:~$ 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 <packaging@mongodb.com>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
jonathan@Ubuntu-16:~$ 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
jonathan@Ubuntu-16:~$ 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.
jonathan@Ubuntu-16:~$
Как видите, полученный ключ был для Mongodb 3.4, а не Mongodb 3.2, и это объясняет сбой GPG в apt update. Кто-нибудь знает, где взять правильный ключ?
источник
В дополнение к ответу @Terrance, вот как вы можете найти соответствующий ключ sig. Пример применим к mongodb в этом случае, но может быть использован для любого другого пакета аналогично. Перед тем как выполнить строки из ответа @Terrance:
Зайдите на сервер ключей Ubuntu, чтобы найти актуальный ключ
Найдите интересующую строку (в случае mongodb) и отправьте эту первую форму (для этого вам не нужна вторая форма) - нажмите
Search!
кнопкуВы можете увидеть два ряда с ключами там. Сосредоточьтесь на самом актуальном по дате. Первая строка - это дата создания, вторая - действительная дата.
Используйте sig из строки, упомянутой в пункте 5 - в случае с картинки это будет
A15703C6
Продолжите с ответом Терранса, вам нужно установить пакет или обновить, как я
источник
У меня тоже ничего не получалось , поэтому я зашел на сайт mogodb и следовал этим инструкциям по установке из tarball:
Установить зависимости:
Скачайте архив с этой страницы
cd
в каталог загрузок или куда-либо файл, и распакуйте его:Двоичные файлы находятся в
bin
каталоге извлеченной структуры. Вы можете добавить этот каталог в PATH или скопировать файлы в/usr/local/bin
другое место PATH.источник
Первый забег:
Можно удалить файл sources.list или просто удалить строки, связанные с монго, присутствующими в файле sources.list.
Затем выполните новую установку MongoDB, используя команды, приведенные в официальных инструкциях по установке MongoDB для Ubuntu. .
Команды в приведенной ссылке приведены ниже
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
sudo apt-get установить gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [arch = amd64] https://repo.mongodb.org/apt/ubuntu bionic / mongodb-org / 4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo service mongod start
статус sudo сервис mongod
источник