debianstretchにmongodb 3.4をインストールしたいと思います。残念ながら、Debian拡張パッケージは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をインストールする方法は?
どんなアドバイスもありがとうございます。
答え1
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
ほぼ独立しています。したがって、Debian 8パッケージを入手してインストールできます。libcrypto
libssl
libssl1.0.0
パッケージのamd64バージョンを見つけることができますここ(他のバージョンを入手するには、Google libssl1.0.0 Jesseとあなたのアーチのみが必要です)。
パッケージをインストールするには、ファイルをダウンロードし(私の場合はダウンロード)、次のコマンドを使用してインストールします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
これでStretchで実行されるJesseパッケージが完成しました。まもなく公式バージョンがリリースされ、この機能はもはや使用されなくなると確信していますが、その間は比較的苦痛ではありません。
答え2
mongodb 3.4の公式aptリポジトリにはまだdebianstretch用のバイナリがないようです。最善のアプローチは、ソースからシステムを構築することです。
このページには具体的な指示があります。 https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
XenialのUbuntuパッケージを試してみることもできますが、これがうまくいくという保証はなく、ソースからビルドする方が良い考えだと思います。
答え3
私はこの問題に直面しました(debain 9を使用していますが)。
もう少し調べた後、これはインストーラが以前のDebianパッケージのバージョンを削除できないためです(私は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
これは、一部の人々の時間を節約することを願っています!
答え4
現在、このパッケージはDebianで利用可能です。
https://packages.debian.org/stretch/mongodb-server
実行してインストールするだけです
# sudo apt install mongodb-server