Apt-get không thành công vào ngày 16.04 hoặc 18.04 khi cài đặt mongodb


26

Khi tôi cố gắng cài đặt mongodb bằng hướng dẫn vào https://docs.mongodb.com/getting-started/shell/tutorial/install-mongodb-on-ubuntu/ngày 16.04, tôi nhận được kết quả sau trong bước cài đặt:

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

Tôi đã kiểm tra lưu lượng HTTP bằng Wireshark và thấy rằng lưu lượng duy nhất là HTTP GET cho danh sách và phản hồi HTTP 304 cho thấy vấn đề nằm ở các tệp cấu hình cục bộ của tôi. Tệp nguồn.list.d của tôi chứa mục sau:

mongodb-org-3.4.list

Tôi cần làm gì để tiếp tục khắc phục sự cố này?

EDIT: Tôi đã thử làm điều này một lần nữa trên bản cài đặt mới 16.04 trong VirtualBox. Tôi đã lấy khóa, tạo tệp danh sách và thực hiện sudo apt updatevới các kết quả sau:

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

Như bạn có thể thấy, khóa được lấy là cho Mongodb 3.4, không phải Mongodb 3.2 và điều này giải thích lỗi GPG trong cập nhật apt. Bất cứ ai biết nơi để có được chìa khóa chính xác?

Câu trả lời:


74

Ubuntu 16.04 và MongoDB 4.0

Đầu tiên, xóa mọi tệp lưu trữ hiện có cho MongoDB.

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

Tiếp theo, thêm khóa: ( không có khóa, kho sẽ không tải )

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

Bây giờ, tạo một tệp danh sách kho lưu trữ MongoDB mới:

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'

Hoàn tất cài đặt với bản cập nhật các kho lưu trữ sau đó cài đặt:

sudo apt update
sudo apt install mongodb-org

Kích hoạt mongoddịch vụ và khởi động nó:

systemctl enable mongod.service
systemctl start mongod.service

Kiểm tra phiên bản mongodb của bạn:

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

Kiểm tra xem dịch vụ có đang chạy không:

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

MongoDB 4.0 được hiển thị ổn định trong đó 4.1 là bản xem trước trong thời điểm hiện tại.

Đầu tiên, xóa MongoDB khỏi trước đó nếu được cài đặt:

sudo apt remove --autoremove mongodb-org

Xóa mọi tập tin danh sách repo mongodb:

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

Bây giờ, thêm khóa mới:

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

Thêm kho lưu trữ mới:

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'

Cài đặt MongoDB

sudo apt update
sudo apt install mongodb-org

Kích hoạt và bắt đầu mongoddịch vụ máy chủ:

systemctl enable mongod.service
systemctl start mongod.service

Kiểm tra cài đặt của bạn:

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

Bạn cũng có thể kiểm tra dịch vụ của bạn đã bắt đầu:

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

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


1
Cảm ơn vì điều đó. Lấy chìa khóa đúng là phần quan trọng.
Jonathan

gpg: keyerver nhận không thành công: Máy chủ chỉ ra lỗi
Máxima Alekz

@ MáximaAlekz Kiểm tra câu trả lời của tôi.
Tpojka

Cảm ơn rất nhiều, @Terrance. Bạn đã tiết kiệm cho tôi rất nhiều thời gian.
Anirudh Thatipelli

Cảm ơn bạn rất nhiều!
Jovana

10

Ngoài câu trả lời của @Terrance, đây là cách bạn có thể tìm khóa sig phù hợp. Ví dụ được áp dụng cho mongodb trong trường hợp này nhưng có thể được sử dụng cho bất kỳ gói nào khác tương tự. Trước khi bạn thực hiện các dòng từ câu trả lời của @Terrance:

  1. Đi đến máy chủ khóa Ubuntu để tìm khóa thực tế

  2. Tìm kiếm chuỗi quan tâm (trường hợp mongodb) và gửi biểu mẫu đầu tiên đó (bạn không cần biểu mẫu thứ hai cho việc này) - nhấp vào Search!nút

nhập mô tả hình ảnh ở đây

  1. Trên danh sách tìm kiếm được cung cấp, hãy tìm phiên bản của bạn (ví dụ: trong trường hợp của tôi là 3,4)

nhập mô tả hình ảnh ở đây

  1. Bạn có thể thấy hai hàng với các phím ở đó. Tập trung vào hầu hết thực tế theo ngày. Chuỗi đầu tiên là ngày được tạo trong khi chuỗi thứ hai là ngày hợp lệ.

  2. Sử dụng sig từ hàng được đề cập trong điểm 5 - trong trường hợp từ hình ảnh, nó sẽ là A15703C6

  3. Tiếp tục với câu trả lời của Terrance, bạn cần cài đặt gói hoặc nâng cấp như tôi


1
Cảm ơn. Điều này giúp tôi tiết kiệm rất nhiều thời gian!
akazuko

1

Không có gì làm việc cho tôi cả, vì vậy tôi đã truy cập trang web mogodb và làm theo các hướng dẫn sau để cài đặt từ tarball:

Cài đặt phụ thuộc:

sudo apt-get install libcurl3 openssl

Tải tarball từ trang này

cd vào thư mục Tải xuống hoặc bất cứ nơi nào tệp đi và giải nén nó:

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

Các nhị phân nằm trong binthư mục của cấu trúc trích xuất. Bạn có thể thêm thư mục này vào PATH hoặc sao chép các tệp vào /usr/local/binhoặc một vị trí PATH khác.


Bạn đã cài đặt một phiên bản khác sau đó những gì được liệt kê ở trên vào thời điểm đó để câu trả lời sẽ không có hiệu quả với bạn. Tôi đã cập nhật câu trả lời của tôi kể từ đó. Đối với mỗi phiên bản, khóa thay đổi và kho lưu trữ thay đổi. Tôi sẽ cố gắng cập nhật câu trả lời của mình cho các phiên bản ổn định mới khi chúng ra mắt.
Terrance
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.