Kiedy próbuję zainstalować mongodb zgodnie z instrukcjami https://docs.mongodb.com/getting-started/shell/tutorial/install-mongodb-on-ubuntu/
z 16.04, otrzymuję następujący wynik na etapie instalacji:
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
Sprawdziłem ruch HTTP za pomocą Wireshark i stwierdziłem, że jedynym ruchem był HTTP GET dla listy i odpowiedź HTTP 304, co sugeruje, że problem leży w moich lokalnych plikach konfiguracyjnych. Mój plik sources.list.d zawiera następujący wpis:
mongodb-org-3.4.list
Co muszę zrobić, aby kontynuować rozwiązywanie tego problemu?
EDYCJA: Próbowałem to zrobić ponownie przy nowej instalacji 16.04 w VirtualBox. Pobrałem klucz, utworzyłem plik listy i zrobiłem sudo apt update
z następującymi wynikami:
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 <[email protected]>" 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:~$
Jak widać, klucz został pobrany dla Mongodb 3.4, a nie Mongodb 3.2, co wyjaśnia awarię GPG podczas aktualizacji apt. Czy ktoś wie, skąd wziąć odpowiedni klucz?
źródło
Oprócz odpowiedzi @Terrance, oto jak znaleźć odpowiedni klucz sig. Przykład dotyczy mongodb w tym przypadku, ale może być użyty w każdym innym pakiecie podobnie. Zanim wykonasz wiersze z odpowiedzi @Terrance:
Przejdź do serwera kluczy Ubuntu, aby znaleźć aktualny klucz
Wyszukaj ciąg zainteresowań (w przypadku mongodb) i prześlij pierwszy formularz (do tego nie potrzebujesz drugiego formularza) - kliknij
Search!
przyciskMożna tam zobaczyć dwa rzędy z kluczami. Skoncentruj się na najbardziej aktualnych terminach. Pierwszy ciąg to data utworzenia, a drugi ważny termin.
Użyj sig z rzędu wymienionego w punkcie 5 - w przypadku, gdy byłoby to z obrazka
A15703C6
Kontynuuj z odpowiedzią Terrance'a, czy musisz zainstalować pakiet lub zaktualizować jak ja
źródło
Dla mnie też nic nie działało, więc poszedłem na stronę mogodb i postępowałem zgodnie z tymi instrukcjami, aby zainstalować z tarball:
Zainstaluj zależności:
Pobierz archiwum z tej strony
cd
do katalogu Pobrane lub gdziekolwiek poszedł plik i rozpakuj go:Pliki binarne znajdują się w
bin
katalogu wyodrębnionej struktury. Możesz dodać ten katalog do ŚCIEŻKI lub skopiować pliki do/usr/local/bin
lub innej lokalizacji ŚCIEŻKI.źródło