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.