Не вдалося отримати Apt 16.04 або 18.04, встановивши mongodb


26

Коли я намагаюся встановити 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, що говорить про те, що проблема полягає в моїх локальних файлах конфігурації. Мій файл izvor.list.d містить такий запис:

mongodb-org-3.4.list

Що мені потрібно зробити, щоб продовжити вирішення цієї проблеми?

EDIT: Я спробував це зробити ще раз під час нової установки 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 в застосуванні. Хтось знає, де взяти правильний ключ?

Відповіді:


76

Ubuntu 16.04 і MongoDB 4.0

Спочатку видаліть будь-який існуючий файл сховища для MongoDB.

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

Далі додайте ключ: ( без ключа сховище не завантажиться )

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

Тепер створіть новий файл списку сховища MongoDB:

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'

Завершіть установку оновленням сховищ, після чого встановіть:

sudo apt update
sudo apt install mongodb-org

Увімкніть mongodпослугу та запустити її:

systemctl enable mongod.service
systemctl start mongod.service

Перевірте свою версію mongodb:

~$ 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

Перевірте, чи працює служба:

~$ 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 і MongoDB 4.0

MongoDB 4.0 показаний як стабільний, де 4.1 є попереднім переглядом.

Спочатку видаліть MongoDB з попереднього, якщо встановлено:

sudo apt remove --autoremove mongodb-org

Видаліть усі файли списку repo reng:

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

Тепер додайте новий ключ:

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

Додайте нове сховище:

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'

Встановіть MongoDB

sudo apt update
sudo apt install mongodb-org

Увімкнути та запустити mongodсерверну службу:

systemctl enable mongod.service
systemctl start mongod.service

Перевірте свою установку:

~$ 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

Ви також можете перевірити, чи розпочато ваше обслуговування:

~$ 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

Сподіваюся, це допомагає!


2
Дякую за це Отримання потрібної клавіші було важливою частиною.
Джонатан

gpg: keyserver не вдалося отримати: Сервер вказав на помилку
Máxima Alekz

@ MáximaAlekz Перевір мою відповідь.
Тпойка

Велике спасибі, @ Терранс. Ти врятував мені багато часу.
Аніруд Татіпеллі

Велике спасибі мій друже!
Йована

10

Окрім відповіді @Terrance, ось як ви можете знайти відповідний сиг-ключ. Приклад застосовний до mongodb в цьому випадку, але його можна використовувати для будь-якого іншого пакета аналогічно. Перш ніж виконати рядки з відповіді @Terrance:

  1. Перейдіть на сервер ключів ubuntu, щоб знайти фактичний ключ

  2. Знайдіть рядок, що цікавить (mongodb у випадку) та подайте цю першу форму (для цього вам не потрібна друга форма) - натисніть Search!кнопку

введіть тут опис зображення

  1. У наданому списку пошуку шукайте свою версію (у моєму випадку тут, наприклад, було 3,4)

введіть тут опис зображення

  1. Ви можете побачити два ряди з ключами там. Зосередьтеся на найбільш актуальних за датою. Перший рядок - це дата, створена, а друга - дата, що настає.

  2. Використовуйте sig із рядка, зазначеного у пункті 5, - у випадку, якщо це буде зображення A15703C6

  3. Продовжуйте відповідь Терранса ще більше, вам потрібно встановити пакет або оновити, як я


1
Спасибі. Це врятувало мені багато часу!
akazuko

1

Для мене також нічого не працювало, тому я зайшов на веб-сайт mogodb і дотримувався цих інструкцій для встановлення з tarball:

Встановити залежності:

sudo apt-get install libcurl3 openssl

Завантажте тарбол з цієї сторінки

cd до каталогу завантажень або куди-небудь файл, і витягніть його:

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

Бінарні файли знаходяться в binкаталозі витягнутої структури. Ви можете додати цей каталог до PATH або скопіювати файли в /usr/local/binінше місце PATH.


Ви встановили іншу версію, а потім те, що було зазначено вище, тоді відповіді не спрацювали б для вас. З тих пір я оновив свою відповідь. Для кожної версії ключ змінюється і сховище змінюється. Я спробую постійно оновлювати свою відповідь щодо нових стабільних версій, коли вони вийдуть.
Терранс

1

Перший запуск:

$ sudo rm /etc/apt/sources.list.d/mongodb*.list
$ sudo rm /etc/apt/sources.list

Потім виконайте нову інсталяцію MongoDB, використовуючи команди, наведені в офіційних інструкціях щодо встановлення MongoDB для Ubuntu .


чи можете ви включити команди зі цього посилання всередині своєї відповіді?
дамадам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.