16.04または18.04でmongodbをインストールすると、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であり、これはapt更新でのGPGの失敗を説明しています。正しいキーを取得する場所を知っている人はいますか?

回答:


74

Ubuntu 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

Ubuntu 18.04およびMongoDB 4.0

MongoDB 4.0は安定版として表示され、4.1は当面の間プレビュー版として表示されます。

最初に、インストールされている場合は以前からMongoDBを削除します。

sudo apt remove --autoremove mongodb-org

mongodbリポジトリリストファイルを削除します。

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
これをありがとう。適切なキーを取得することが重要な部分でした。
ジョナサン

GPG:キーサーバー受信に失敗しました:サーバーが故障示さ
マキシマAlekz

@MáximaAlekz答えを確認してください。
トポカ

@Terrance、どうもありがとう。あなたは私に多くの時間を節約しました。
Anirudh Thatipelli

どうもありがとう!
ジョバナ

10

@Terranceの答えに加えて、適切なsigキーを見つける方法は次のとおりです。この場合の例はmongodbに適用できますが、他のパッケージにも同様に使用できます。@Terranceの答えから行を実行する前に:

  1. 実際のキーを見つけるためにubuntuキーサーバーに移動します

  2. 関心のある文字列(ケースではmongodb)を検索し、その最初のフォームを送信します(このために2番目のフォームは必要ありません)- Search!ボタンをクリックします

ここに画像の説明を入力してください

  1. 提供された検索リストで、バージョンを探します(この例では、私の場合は3.4でした)

ここに画像の説明を入力してください

  1. キーがある2つの行を確認できます。日付で最も実際に焦点を当てます。最初の文字列は作成された日付で、2番目の文字列は有効な日付です。

  2. ポイント5に記載されている行からsigを使用します-写真の場合は A15703C6

  3. パッケージをインストールする必要があるか、自分のようにアップグレードする必要があるかどうか、Terranceの回答を続けます


1
ありがとう。これにより多くの時間を節約できました!
赤津子

1

何も機能しなかったので、mogodbのWebサイトにアクセスしこれらの指示に従って tarballからインストールしました。

依存関係をインストールします。

sudo apt-get install libcurl3 openssl

このページからtarballをダウンロードしてください

cd Downloadsディレクトリまたはファイルの保存先に移動して、解凍します。

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

バイナリはbin、抽出された構造のディレクトリにあります。このディレクトリをPATHに追加する/usr/local/binか、ファイルを別のPATHの場所にコピーできます。


その時点で上記にリストされているものとは異なるバージョンをインストールしたため、回答が機能しませんでした。それ以来、回答を更新しました。バージョンごとに、キーが変更され、リポジトリが変更されます。新しい安定版がリリースされたら、回答を更新し続けるようにします。
テランス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.