E: nie można zlokalizować pakietu mongodb-org


103

Próbuję pobrać mongodb i postępuję zgodnie z instrukcjami na tym łączu .

Ale kiedy dojdę do kroku:

sudo apt-get install -y mongodb-org

Otrzymuję następujący błąd:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package mongodb-org  //This is the error

Dlaczego tak się dzieje i czy istnieje obejście?

Odpowiedzi:


204

Napotkałem ten sam problem, ale naprawiłem go, zmieniając polecenie sekcji pliku pakietu. Cały krok, który wykonałem, to:

Najpierw spróbuj tego polecenia: sudo apt-get install -y mongodb

Jest to nieoficjalny pakiet mongodb dostarczany przez Ubuntu i nie jest obsługiwany przez MongoDB i powoduje konflikt z oficjalnie obsługiwanymi pakietami MongoDB.

Jeśli powyższe polecenie nie działa, możesz rozwiązać problem za pomocą jednej z poniższych procedur:

#Step 1:  Import the MongoDB public key
#In Ubuntu 18.*+, you may get invalid signatures. --recv value may need to be updated to EA312927. 
#See here for more details on the invalid signature issue: [https://stackoverflow.com/questions/34733340/mongodb-gpg-invalid-signatures][1]

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

#Step 2: Generate a file with the MongoDB repository url
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list

#Step 3: Refresh the local database with the packages
sudo apt-get update

#Step 4: Install the last stable MongoDB version and all the necessary packages on our system
sudo apt-get install mongodb-org

         #Or
# The unofficial mongodb package provided by Ubuntu is not maintained by MongoDB and conflict with MongoDBs offically supported packages. Use the official MongoDB mongodb-org packages, which are kept up-to-date with the most recent major and minor MongoDB releases.
sudo apt-get install -y mongodb 

Mam nadzieję, że to zadziała również dla Ciebie. Możesz śledzić tę MongoDB

Aktualizacja Powyższa instrukcja zainstaluje wersję mongodb 2.6, jeśli chcesz zainstalować najnowszą wersję, Uubuntu 12.04po prostu zamień powyższą step 2instrukcję i postępuj zgodnie z poniższą instrukcją zamiast tego:

#Step 2: Generate a file with the MongoDB repository url
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list

Jeśli używasz, Ubuntu 14.04użyj poniższego kroku zamiast powyższegostep 2

#Step 2: Generate a file with the MongoDB repository url
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

1
Pracowałem dla mnie na Ubuntu 14.10 (inne odpowiedzi nie
działały

1
Ups, nie, przepraszam, nadal nie działa (to instaluje Mongo 2.6, a nie najnowszą wersję stabilną 3.0). Zobacz moją własną odpowiedź.
julien_c

36
Szkoda, że ​​to działa, a oficjalny przewodnik po witrynie nie.
Dan Pantry

1
Oficjalne instrukcje MongoDB nie wspominały, że adres URL repozytorium dotyczy wersji 2.6. Musiałem wykonać zaktualizowany krok 2 z poprawnym adresem URL, aby użyć sudo apt-get install mongodb-org. Po tym rozwiązaniu problem.
Daniel Eagle

2
Wypróbowałem polecenie dla Ubuntu 14.04 i nadal nie działa!
alexventuraio

59

Prawdziwy problem może dotyczyć systemu 32-bitowego . MongoDB 3.X nigdy nie był przeznaczony do użytku w systemie 32-bitowym, więc repozytoria dla wersji 32-bitowej są puste (stąd dlaczego ich nie znaleziono). Zainstalowanie domyślnego pakietu Ubuntu 2.X może być najlepszym rozwiązaniem dzięki:

sudo apt-get install -y mongodb 


Kolejne obejście, jeśli mimo to chcesz pobrać najnowszą wersję Mongo:

Możesz przejść do https://www.mongodb.org/downloads i skorzystać z menu rozwijanego, aby wybrać „Linux 32-bit legacy”

Ale ma poważne ograniczenia ...

Ta 32-bitowa starsza dystrybucja nie obejmuje szyfrowania SSL i jest ograniczona do około 2 GB danych. Generalnie powinieneś używać wersji 64-bitowych. Więcej informacji znajdziesz tutaj .


45

Spróbuj bez „-org”:

sudo apt-get install -y mongodb

Pracował dla mnie!


7
To prawdopodobnie domyślny pakiet Ubuntu. Nie przydatne, jeśli chcesz najnowszego mongo.
bateria

1
To rzeczywiście może być domyślny pakiet Ubuntu. Dobry na szybki start, ale jeśli potrzebujesz najnowszego pakietu z mongo.org, wymagane są dodatkowe kroki.
John D

2
Prawdziwy problem może dotyczyć systemu 32-bitowego. MongoDB 3.X nigdy nie był przeznaczony do użytku w systemie 32-bitowym, więc repozytoria dla wersji 32-bitowej są puste (stąd dlaczego ich nie znaleziono).
John D

2
W tym właśnie tkwi problem, a to jest prawdziwa odpowiedź :-) To tylko coś, czego strona Mongo nie mówi jasno. W jednym miejscu mówią, że powinieneś uruchomić MongoDB w wersji 64-bitowej do celów produkcyjnych, w innym mówi, że zapewniają pakiety zarówno dla 32-bitowych, jak i 64-bitowych środowisk testowych.
bateria

Poniżej dodałem bardziej szczegółową odpowiedź, która podsumowuje problem (na podstawie wszystkich pomocnych komentarzy, dziękuję!) I proponuje kilka obejść. Czy mógłbyś zagłosować za tą odpowiedzią zamiast tej?
John D


6

Wszystkie kroki są poprawne, po prostu zmień krok 4, jak poniżej

  • Krok 4: Zainstaluj ostatnią stabilną wersję MongoDB i wszystkie niezbędne pakiety w naszym systemie

Komenda: sudo apt-get install mongodb

Na mnie zadziałało.


To instaluje domyślny nieoficjalny pakiet mongo Ubuntu, który jest już wspomniany w pierwszej odpowiedzi Naima. Nie musisz w tym celu wykonywać poprzednich kroków.
shaahiin

4

Jeśli obecnie korzystasz z repozytorium MongoDB 3.3 (zgodnie z oficjalną sugestią witryny MongoDB) , należy wziąć pod uwagę, że nazwa pakietu używana w wersji 3.3 to:

mongodb-org-unstable

Wtedy właściwe polecenie instalacji dla tej wersji to:

sudo apt-get install -y mongodb-org-unstable

Biorąc to pod uwagę, raczej zasugeruję użycie aktualnej najnowszej stabilnej wersji (v3.2) dopóki v3.3 nie stanie się stabilna, polecenia instalacji są wymienione poniżej:

Pobierz klucz repozytorium v3.2:

wget -qO - https://www.mongodb.org/static/pgp/server-3.2.asc | sudo apt-key add -

Jeśli pracujesz z Ubuntu 12.04 lub Mint 13, dodaj następujące repozytorium:

echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Jeśli pracujesz z Ubuntu 14.04 lub Mint 17, dodaj następujące repozytorium:

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

Jeśli pracujesz z Ubuntu 16.04 lub Mint 18, dodaj następujące repozytorium:

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

Zaktualizuj listę pakietów i zainstaluj mongo:

sudo apt-get update
sudo apt-get install -y mongodb-org

3

Aktualnie zaakceptowana odpowiedź działa, ale zainstaluje nieaktualną wersję Mongo.

Dokumentacja Mongo stwierdza, że: MongoDB dostarcza tylko pakiety dla Ubuntu 12.04 LTS (Precise Pangolin) i 14.04 LTS (Trusty Tahr). Jednak te pakiety mogą działać z innymi wydaniami Ubuntu.

Tak więc, aby uzyskać najnowszą stabilną Mongo ( 3.0), użyj tego (inny krok to drugi):

    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
    echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list
    apt-get update
    apt-get install mongodb-org

Mam nadzieję że to pomoże.


Chciałbym dodać, że jako poprzedni krok musisz sprawdzić wydanie GNU / Linux Distro, które utworzy adres URL listy repo. Dla mnie, ponieważ używam tego:

DISTRIB_CODENAME=rafaela
DISTRIB_DESCRIPTION="Linux Mint 17.2 Rafaela"
NAME="Ubuntu"
VERSION="14.04.2 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.2 LTS"

Oryginalny drugi krok:

"Create a list file for MongoDB": "echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list"

Nie działa zgodnie z oczekiwaniami, ponieważ wygenerował nieprawidłowy adres URL repozytorium. Zasadniczo, umieszcza on nazwę kodową dystrybucji „rafaela” w repozytorium adresów URL, które nie istnieje. Adres URL repozytorium można sprawdzić w menedżerze pakietów w obszarze Źródła oprogramowania, Dodatkowe repozytoria.

Przeglądałem witrynę:

http://repo.mongodb.org/apt/ubuntu/dists/

I dowiedziałem się, że w przypadku Ubuntu „zaufane” i „dokładne” to jedyne dostępne foldery internetowe, a nie „rafaela”.

Rozwiązanie : Otwórz jako root plik 'mongodb-org-3.1.list' lub 'mongodb.list' i zamień „rafaela” lub wersję wydania na odpowiednią wersję (dla mnie było to: „zaufana”), zapisz zmiany i przejdź do kolejnych kroków. Ponadto menedżer pakietów może również umożliwić łatwą zmianę adresu URL repozytorium.

Mam nadzieję, że to działa dla Ciebie.! ---



1

Najpierw musisz dodać bazę danych pakietów i dodać klucz PGP.

Uruchom następujące.

#add pgp key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

#add package file
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

#update package list
sudo apt-get update

#install mongo
sudo apt-get install -y mongodb-org

2
Już mam, działało idealnie do trzeciego kroku ale potem wyskoczył mi powyższy błąd.
anonn023432

Stałoby się tak, gdyby aktualizacja apt-get nie została uruchomiona i / lub lista źródeł jest pusta. Potrafisz biec cat /etc/apt/sources.list.d/mongodb-org-3.0.list?
Jeff Sloyer,

2
Zrobiłem to, oto co mamdeb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.0 multiverse
anonn023432

1

Miałem ten sam problem w 14.04, ale naprawiłem go w ten sposób:

  1. sudo apt-key adv --keyserver hkp: //keyserver.ubuntu.com: 80 --recv 7F0CEB10
  2. echo "deb http://repo.mongodb.org/apt/ubuntu " $ (lsb_release -sc) "/ mongodb- org / 3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
  3. sudo apt-get update
  4. sudo apt-get install -y mongodb

Zadziałało jak urok :)


Spowoduje to zainstalowanie domyślnego pakietu Ubuntu 2.X, a nie najnowszego 3.X z mongo.org (zobacz komentarze do innych odpowiedzi powyżej i poniżej)
John D

chciałbym, abyś rzucił okiem na oficjalną stronę docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu. W tej linii jest błąd 4. sudo apt-get install -y mongodb
YLS

1

To działało na Ubuntu 17.04

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

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

sudo apt-get update

sudo apt-get install -y mongodb-org

Jeśli zobaczysz awarię, taką jak:

dpkg: error processing archive /var/cache/apt/archives/mongodb-org-tools_3.6.2_amd64.deb (--unpack):
trying to overwrite '/usr/bin/bsondump', which is also in package mongo-tools 3.2.11-1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)

Następnie uruchom to polecenie:

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" |

sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

i

sudo apt update
sudo apt install mongodb-org

Bibliografia:


0

Miałem te same problemy na Ubuntu 16.04, kiedy postępowałem zgodnie z instrukcjami zamieszczonymi w oficjalnym dokumencie .
Następnie usuwam tekst „[arch = amd64, arm64]” w kroku 2 i to działa.

echo "deb https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list   
apt-get install -y mongodb-org  

0

Dla tych, którzy używają, Ubuntu 18.04mogą uruchomić to polecenie:

Utwórz /etc/apt/sources.list.d/mongodb-org-4.2.listplik dla Ubuntu 18.04 (Bionic) :

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.