debian stretch(9)にmongodb 3.4をインストールするには?


13

debian stretchにmongodb 3.4をインストールします。残念ながら、debian stretchパッケージはmongodb 3.2(https://packages.debian.org/stretch/mongodb)のみです。

mongodbのドキュメントでは、debian 7および8(https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/)のみに言及しています。debian 8コマンドを使用するとき、依存関係が満たされていないため、mongodbパッケージをインストールできません。

jessie-backportsを許可すると、満たされていない依存関係エラーはなくなりますが、これを実行してjessie-backportsパッケージを一気にインストールする必要があるかどうかはわかりません。

debian stretchでmongodb 3.4をどのようにインストールしますか?

アドバイスをありがとう。


彼らはストレッチのために3.6をリリース
ERI

回答:


16

Debian 8の指示を使用しようとすると、多くの依存関係が欠落していることを示唆するエラーが表示されますが、実際には、実際に欠落している単一の依存関係(libssl1.0.0)をインストールすれば機能します。参考のために、不足しているものを解決するために、mongodバイナリをダウンロードして見てみましたldd

adam@debian9:~/mongo/mongodb-linux-x86_64-debian81-3.4.6/bin$ ldd mongod
    linux-vdso.so.1 (0x00007ffd0e15d000)
    libssl.so.1.0.0 => not found
    libcrypto.so.1.0.0 => not found
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f93c6dff000)
    *snip*

Debian 9にインストールされているものを見ると、基本的にlibsslはあまりにも新しいバージョンがあります。libsslそしてlibcryptoライブラリが両方によってインストールされlibsslたパッケージと、それはかなりのスタンドアロンです。したがって、Debian 8 libssl1.0.0パッケージを入手してインストールするだけです。

パッケージのamd64バージョンはここにあります(libssl1.0.0 Jesseの場合はGoogle、別のバージョンの場合はarch)。

そのパッケージをインストールするには、ファイルをダウンロードし(私の場合はダウンロード用)、それからインストールしdpkgます:

adam@debian9:~$ sudo dpkg -i /home/adam/Downloads/libssl1.0.0_1.0.1t-1+deb8u6_amd64.deb 
Selecting previously unselected package libssl1.0.0:amd64.
(Reading database ... 126471 files and directories currently installed.)
Preparing to unpack .../libssl1.0.0_1.0.1t-1+deb8u6_amd64.deb ...
Unpacking libssl1.0.0:amd64 (1.0.1t-1+deb8u6) ...
Setting up libssl1.0.0:amd64 (1.0.1t-1+deb8u6) ...

それが完了したら、すぐに再チェックしlddます:

adam@debian9:~/mongo/mongodb-linux-x86_64-debian81-3.4.6/bin$ ldd mongod
    linux-vdso.so.1 (0x00007ffdf25de000)
    libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f86bc12d000)
    libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f86bbd31000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f86bbb29000)
*snip*

成功!次のパッケージのインストールを再試行しますmongodb-org

adam@debian9:~$ sudo apt install mongodb-org
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
The following NEW packages will be installed:
  mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 66.8 MB of archives.
After this operation, 270 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-shell amd64 3.4.6 [7,980 kB]
Get:2 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-server amd64 3.4.6 [14.2 MB]
Get:3 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-mongos amd64 3.4.6 [8,103 kB]
Get:4 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-tools amd64 3.4.6 [36.5 MB]
Get:5 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org amd64 3.4.6 [3,820 B]
Fetched 66.8 MB in 7s (9,509 kB/s)                                                             
Selecting previously unselected package mongodb-org-shell.
(Reading database ... 126491 files and directories currently installed.)
Preparing to unpack .../mongodb-org-shell_3.4.6_amd64.deb ...
Unpacking mongodb-org-shell (3.4.6) ...
Selecting previously unselected package mongodb-org-server.
Preparing to unpack .../mongodb-org-server_3.4.6_amd64.deb ...
Unpacking mongodb-org-server (3.4.6) ...
*snip*
Adding system user `mongodb' (UID 119) ...
Adding new user `mongodb' (UID 119) with group `nogroup' ...
Not creating home directory `/home/mongodb'.
Adding group `mongodb' (GID 123) ...
Done.
Adding user `mongodb' to group `mongodb' ...
Adding user mongodb to group mongodb
Done.
Setting up mongodb-org (3.4.6) ...

最後に、サービスが開始され、シェルで接続できることを確認しましょう。

adam@debian9:~$ sudo systemctl start mongod
adam@debian9:~$ mongo
MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.6 

これで、JesseパッケージがStretchで動作するようになりました。私はこれを時代遅れにする公式リリースがすぐに来ると確信していますが、それまでは比較的痛みのない回避策です。


バックポートトリックをありがとう。Linuxを間違えていたので、私はそれを思いついたときに得package not foundmongodb-orgいました。64ビットではなく32ビットVMを手に入れました...おっと!MongoDBの命令とバイナリは64ビット専用です!
-sumitkm

2
長い時間のためにケースをされている、32ビットは必ずWiredTigerが今までそれを支え、特にMMAPストレージエンジンでは、厳しい制限(2GB最大データ)を持っていないこと
アダム・C

3
:バージョン3.0と32ビットのサポートを落とした-それは見出さdocs.mongodb.com/manual/release-notes/3.0-compatibility/...
アダムC

1
このアダムに感謝します。sudo systemctl start mongodSystemDはJessie以来Debianのデフォルトの初期化システムであり、service単なる互換性スクリプトになったため、最終ステップで使用します。
ラファ


3

mongodb 3.4の公式aptリポジトリには、debian stretchのバイナリがまだないようです。最適なアプローチは、システムのソースから構築することです。

このページには具体的な手順があります:https : //github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source

また、Xenial用のUbuntuパッケージを使用することもできますが、これが適切に機能するという保証はありません。ソースからビルドする方が良いと思います。


ソースからビルドしようとしましたが、asio / ssl / impl / context.ippからSSLv2_methodがエラーとして宣言されていません。何か案は?
ハンバーグ

1

私はこの問題を抱えていました(debain 9を使用していますが)。

少し掘り下げた結果、古いdebian-packagedバージョンはインストーラーで削除できなかったことが原因であることがわかりました(Debianが提供する非公式mongodbパッケージから公式mongodb-orgパッケージにアップグレードしようとしました)。

解決策は次のとおりです。

sudo apt-get autoremove mongodb-org
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install -y mongodb-org

これが誰かの時間を節約することを願っています!




0

Debian 9 Stretchを使用しています

このバージョンのMongoDBをダウンロードしました:Linux 64-bit legacy 64x

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

デスクトップフォルダにダウンロードし、名前を変更しました mongodb

その後、最近の名前を変更したフォルダーを「必要」に移動します /opt/

mv mongodb /opt/

これで/opt/mongodb/bin、次のようなコマンドにアクセスして実行できます。

./mongod --dbpath ./db/

面白くするためmongod/usr/local/bin/、次のようなシンボリックリンクを作成できます:

ln -s /opt/mongodb/bin/mongod /usr/local/bin/mongod

ここで、ターミナルでどこからでもコマンドを入力します。

mongod --dbpath /homer/user/Desktop/db

mongodが適切に機能するには、-dbpathを指定する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.