mongodb를 설치하는 16.04 또는 18.04에서 apt-get이 실패합니다.


26

https://docs.mongodb.com/getting-started/shell/tutorial/install-mongodb-on-ubuntu/16.04 의 지침을 사용하여 mongodb를 설치하려고 하면 설치 단계에서 다음과 같은 결과가 나타납니다.

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

Wireshark를 사용하여 HTTP 트래픽을 확인한 결과 유일한 트래픽은 목록에 대한 HTTP GET이고 로컬 구성 파일에 문제가 있음을 나타내는 HTTP 304 응답이라는 것을 알았습니다. 내 sources.list.d 파일에는 다음 항목이 포함되어 있습니다.

mongodb-org-3.4.list

이 문제를 계속 해결하려면 어떻게해야합니까?

편집 : VirtualBox에서 16.04를 새로 설치하면이 작업을 다시 시도했습니다. 키를 검색하고 목록 파일을 작성 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.2가 아닌 Mongodb 3.4 용이며 이는 적절한 업데이트의 GPG 실패를 설명합니다. 올바른 키를 어디에서 얻을 수 있는지 아는 사람이 있습니까?

답변:


74

우분투 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

우분투 18.04 및 MongoDB 4.0

MongoDB 4.0은 4.1이 당분간 미리보기 인 경우 안정적으로 표시됩니다.

먼저 이전 버전에서 MongoDB를 제거하십시오 (설치된 경우).

sudo apt remove --autoremove mongodb-org

mongodb repo 목록 파일을 제거하십시오.

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

이것이 도움이되기를 바랍니다!


1
고마워 올바른 열쇠를 얻는 것이 중요한 부분이었습니다.
— Jonathan

gpg : 키 서버 수신 실패 : 서버 오류 표시
— Máxima Alekz

@ MáximaAlekz 내 답변을 확인하십시오.
— Tpojka

감사합니다, @Terrance. 당신은 저에게 많은 시간을 절약했습니다.
— Anirudh Thatipelli

내 친구 고마워!
— Jovana

10

@Terrance의 답변 외에도 적절한 시그 키를 찾는 방법은 다음과 같습니다. 이 경우 mongodb에 예제를 적용 할 수 있지만 다른 패키지에도 유사하게 사용할 수 있습니다. @Terrance의 답변에서 행을 실행하기 전에 :

  1. 실제 키를 찾으 려면 우분투 키 서버 로 이동하십시오.

  2. 관심있는 문자열을 검색하고 (이 경우 mongodb) 첫 번째 양식을 제출하십시오 (이를 위해 두 번째 양식이 필요하지 않음)-클릭 Search!버튼

여기에 이미지 설명을 입력하십시오

  1. 제공된 검색 목록에서 귀하의 버전을 찾으십시오 (예에서는 여기에서는 3.4였습니다)

여기에 이미지 설명을 입력하십시오

  1. 키가있는 두 개의 행을 볼 수 있습니다. 가장 실제 날짜별로 초점을 맞 춥니 다. 첫 번째 문자열은 만든 날짜이고 두 번째 문자열은 유효한 날짜입니다.

  2. 포인트 5에서 언급 한 행에서 sig를 사용하십시오-그림에서 경우 A15703C6

  3. 패키지를 설치하거나 나처럼 업그레이드해야 할 때 Terrance의 답변을 계속하십시오.


1
감사. 이것은 많은 시간을 절약했습니다!
— akazuko

1

나는 갔다, 그래서 아무것도 어느 날 위해 일하지 mogodb 웹 사이트 와 다음 이 지침 타르에서 설치를 :

종속성을 설치하십시오.

sudo apt-get install libcurl3 openssl

이 페이지 에서 타르볼을 다운로드 하십시오

cd Downloads 디렉토리 또는 파일이있는 위치에 압축을 풀고 다음을 추출하십시오.

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

바이너리는 bin추출 된 구조 의 디렉토리에 있습니다. 이 디렉토리를 PATH에 추가하거나 파일을 /usr/local/bin다른 PATH 위치에 복사 할 수 있습니다 .


위에 나열된 버전과 다른 버전을 설치 했으므로 답변이 제대로 작동하지 않습니다. 이후 답변을 업데이트했습니다. 각 버전마다 키가 변경되고 저장소가 변경됩니다. 새로운 안정 버전이 나오면 답변을 계속 업데이트하도록 노력하겠습니다.
— Terrance
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.