E: Không thể định vị gói mongodb-org


102

Tôi đang cố tải xuống mongodb và tôi đang làm theo các bước trên liên kết này .

Nhưng khi tôi đến bước:

sudo apt-get install -y mongodb-org

Tôi nhận được lỗi sau đây:

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

Tại sao điều này xảy ra và có một công việc xung quanh?

Câu trả lời:


204

Tôi gặp phải vấn đề tương tự nhưng khắc phục nó bằng lệnh thay đổi phần tệp gói. Toàn bộ bước mà tôi đã làm theo là:

Lúc đầu, hãy thử với lệnh này: sudo apt-get install -y mongodb

Đây là gói mongodb không chính thức được cung cấp bởi Ubuntu và nó không được MongoDB duy trì và xung đột với các gói được hỗ trợ chính thức của MongoDB.

Nếu lệnh trên không hoạt động thì bạn có thể khắc phục sự cố bằng một trong các quy trình dưới đây:

#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 

Hy vọng điều này cũng sẽ làm việc cho bạn. Bạn có thể theo dõi MongoDB này

Cập nhật Hướng dẫn trên sẽ cài đặt phiên bản mongodb 2.6, nếu bạn muốn cài đặt phiên bản mới nhất Uubuntu 12.04thì chỉ cần thay thế ở trên step 2và làm theo hướng dẫn dưới đây thay vì:

#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

Nếu bạn đang sử dụng Ubuntu 14.04thì hãy sử dụng bước dưới đây thay vì ở trênstep 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
Làm việc cho tôi trên Ubuntu 14.10 (câu trả lời khác không) sau khi tôi cố định lệnh ở bước 2.
julien_c

1
Rất tiếc, không, xin lỗi, vẫn không hoạt động (cài đặt này cài đặt Mongo 2.6, không phải là phiên bản ổn định cuối cùng 3.0). Xem câu trả lời của riêng tôi.
julien_c

36
Thật tệ là điều này hoạt động và hướng dẫn trang web chính thức thì không.
Dan Pantry

1
Hướng dẫn chính thức của MongoDB không đề cập rằng URL của kho lưu trữ là dành cho 2.6. Tôi phải làm theo bước 2 đã cập nhật của bạn với URL chính xác để sử dụng sudo apt-get install mongodb-org. Sau đó nó đã khắc phục sự cố.
Daniel Eagle

2
Tôi đã thử lệnh cho Ubuntu 14.04 và nó vẫn không hoạt động!
alexventuraio

59

Vấn đề thực sự ở đây có thể là nếu bạn có một hệ thống 32-bit . MongoDB 3.X không bao giờ được tạo ra để sử dụng trên hệ thống 32 bit, vì vậy kho lưu trữ cho 32 bit trống (do đó không tìm thấy nó). Cài đặt gói Ubuntu 2.X mặc định có thể là cách tốt nhất của bạn với:

sudo apt-get install -y mongodb 


Một giải pháp khác, nếu bạn vẫn muốn tải phiên bản Mongo mới nhất:

Bạn có thể truy cập https://www.mongodb.org/downloads và sử dụng menu thả xuống để chọn "Linux 32-bit cũ"

Nhưng nó đi kèm với những hạn chế nghiêm trọng ...

Bản phân phối kế thừa 32-bit này không bao gồm mã hóa SSL và bị giới hạn ở khoảng 2GB dữ liệu. Nói chung, bạn nên sử dụng các bản dựng 64 bit. Xem tại đây để biết thêm thông tin.


45

Hãy thử mà không có '-org':

sudo apt-get install -y mongodb

Đã làm cho tôi!


7
Đây có lẽ là gói mặc định của Ubuntu. Không hữu ích nếu bạn muốn mongo mới nhất.
pin

1
Đây thực sự có thể là gói mặc định của Ubuntu. Tốt để bắt đầu nhanh, nhưng nếu bạn đặc biệt cần gói mới nhất từ ​​mongo.org, thì bạn cần thực hiện thêm các bước.
John D

2
Vấn đề thực sự ở đây có thể là nếu bạn có một hệ thống 32-bit. MongoDB 3.X không bao giờ được tạo ra để sử dụng trên hệ thống 32 bit, vì vậy kho lưu trữ cho 32 bit trống (do đó không tìm thấy nó).
John D

2
Đó chính xác là vấn đề, và đây là câu trả lời thực sự :-) Nó chỉ là thứ mà trang web của Mongo không nói rõ ràng. Có nơi họ nói rằng bạn nên chạy MongoDB trên 64 bit để sản xuất, ở nơi khác lại nói rằng họ cung cấp các gói cho cả 32 bit và 64 bit cho môi trường thử nghiệm.
pin

Tôi đã thêm một câu trả lời chi tiết hơn bên dưới tóm tắt vấn đề (dựa trên tất cả các nhận xét hữu ích, cảm ơn bạn!) Và đề xuất một số cách giải quyết. Bạn có thể vui lòng ủng hộ câu trả lời đó thay vì câu trả lời này không?
John D


6

Tất cả các bước đều đúng chỉ cần thay đổi Bước 4 như bên dưới

  • Bước 4: Cài đặt phiên bản MongoDB ổn định cuối cùng và tất cả các gói cần thiết trên hệ thống của chúng tôi

Chỉ huy: sudo apt-get install mongodb

Nó đã làm cho tôi.


Đây là cài đặt gói mongo không chính thức mặc định của Ubuntu mà đã được Naim đề cập trong câu trả lời hàng đầu. Bạn không cần phải làm theo các bước trước đó cho việc này.
shaahiin

4

Nếu bạn hiện đang sử dụng Kho lưu trữ MongoDB 3.3 (như trang web MongoDB chính thức đề xuất hiện tại), bạn nên lưu ý rằng tên gói được sử dụng cho phiên bản 3.3 là:

mongodb-org-không ổn định

Sau đó, lệnh cài đặt thích hợp cho phiên bản này sẽ là:

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

Xem xét điều này, tôi khuyên bạn nên sử dụng phiên bản ổn định mới nhất hiện tại (v3.2) cho đến khi v3.3 trở nên ổn định, các lệnh để cài đặt nó được liệt kê bên dưới:

Tải xuống khóa kho lưu trữ v3.2:

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

Nếu bạn làm việc với Ubuntu 12.04 hoặc Mint 13, hãy thêm kho lưu trữ sau:

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

Nếu bạn làm việc với Ubuntu 14.04 hoặc Mint 17, hãy thêm kho lưu trữ sau:

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

Nếu bạn làm việc với Ubuntu 16.04 hoặc Mint 18, hãy thêm kho lưu trữ sau:

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

Cập nhật danh sách gói và cài đặt mongo:

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

3

Câu trả lời hiện được chấp nhận hoạt động, nhưng sẽ cài đặt phiên bản Mongo lỗi thời.

Tài liệu Mongo nói rằng: MongoDB chỉ cung cấp các gói cho Ubuntu 12.04 LTS (Precise Pangolin) và 14.04 LTS (Trusty Tahr). Tuy nhiên, các gói này có thể hoạt động với các bản phát hành Ubuntu khác.

Vì vậy, để có được Mongo ( 3.0) ổn định nhất cuối cùng , hãy sử dụng bước này (bước khác là bước thứ hai):

    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

Hi vọng điêu nay co ich.


Tôi muốn nói thêm rằng ở bước trước, bạn phải kiểm tra Bản phát hành GNU / Linux Distro của mình, bản phát hành này sẽ tạo url danh sách Repo. Đối với tôi, khi tôi đang sử dụng cái này:

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"

Bước thứ 2 ban đầu:

"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"

Không hoạt động như dự định vì nó tạo url Repo không chính xác. Về cơ bản, nó đặt tên mã phân phối "rafaela" trong url repo không tồn tại. Bạn có thể kiểm tra url Repo tại trình quản lý gói của mình trong Nguồn phần mềm, Kho bổ sung.

Những gì tôi đã làm là duyệt trang web:

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

Và tôi phát hiện ra rằng đối với Ubuntu, "trusty" và "precision" là các thư mục web duy nhất có sẵn, không phải "rafaela".

Giải pháp : Mở dưới dạng root tệp 'mongodb-org-3.1.list' hoặc 'mongodb.list' và thay thế "rafaela" hoặc phiên bản phát hành của bạn cho phiên bản tương ứng (đối với tôi là: "trusty"), lưu các thay đổi và tiếp tục với các bước tiếp theo. Ngoài ra, trình quản lý gói của bạn cũng có thể cho phép bạn dễ dàng thay đổi url repo.

Hi vọng nó sẽ giúp ích cho bạn.! ---



1

Trước tiên, bạn cần thêm cơ sở dữ liệu gói và thêm khóa PGP.

Chạy phần sau.

#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
Tôi đã có, nó hoạt động hoàn hảo cho đến bước thứ ba nhưng sau đó tôi gặp lỗi ở trên.
anonn023432 Ngày

Điều đó sẽ xảy ra nếu bản cập nhật apt-get không được chạy và / hoặc danh sách nguồn trống. Bạn có thể chạy cat /etc/apt/sources.list.d/mongodb-org-3.0.list?
Jeff Sloyer

2
Đã làm điều đó, đây là những gì tôi nhậndeb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.0 multiverse
anonn023432

1

Tôi đã gặp sự cố tương tự trong 14.04, nhưng tôi đã khắc phục sự cố bằng các bước sau:

  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 đa vũ trụ" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
  3. sudo apt-get cập nhật
  4. sudo apt-get install -y mongodb

Nó hoạt động như một sự quyến rũ :)


Điều này sẽ cài đặt gói Ubuntu 2.X mặc định, không phải 3.X mới nhất từ ​​mongo.org (xem nhận xét về các câu trả lời khác ở trên và bên dưới)
John D

Tôi muốn bạn xem trang web chính thức docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu trong trang web chính thức, có một lỗi trong dòng này 4. sudo apt-get install -y mongodb
YLS

1

Điều này hoạt động trên 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

Nếu bạn gặp lỗi như sau:

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)

Sau đó chạy lệnh này:

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

sudo apt update
sudo apt install mongodb-org

Người giới thiệu:


0

Tôi đã gặp vấn đề tương tự trên Ubuntu 16.04 khi tôi làm theo các bước được đăng trên tài liệu chính thức .
Sau đó, tôi xóa văn bản "[Arch = amd64, arm64]" trong bước 2 và nó phù hợp với tôi.

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

Đối với những người sử dụng Ubuntu 18.04có thể chạy lệnh này:

Tạo /etc/apt/sources.list.d/mongodb-org-4.2.listtệp cho 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.