web-dev-qa-db-ja.com

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

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

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

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

Mongodb 3.4をdebianストレッチにどのようにインストールしますか?

アドバイスありがとうございます。

13
Hamburml

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バージョンは、 here にあります(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 

そして、あなたはそれを持っています-Stretchに取り組んでいるJesseパッケージ。これを廃止する公式リリースが間もなくリリースされると確信していますが、それまでのところ、これは比較的簡単な回避策です。

16
Adam C

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

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

XenialのUbuntuパッケージを使用することもできますが、これが正しく機能することは保証されていません。ソースからビルドすることをお勧めします。

3
Ivan G.

私はこの問題を抱えていました(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

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

1
ricardo

現在、パッケージはDebian内で利用可能です-

https://packages.debian.org/stretch/mongodb-server

実行してインストールするだけです

# Sudo apt install mongodb-server

0
Sanjay Vamja

私は Githubリポジトリ を作成して、MongoDBの最新バージョンを自分で簡単に構築できるようにしました。 systemdサービスを含むaptに依存するのではなく、すべてを内部で構築します。

0
Patrik Laszlo

私はDebian 9 Stretchを使用しています

このバージョンのMongoDBをダウンロードしました:Linux 64ビットレガシー64x

enter image description here

デスクトップフォルダーにダウンロードし、名前を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を指定する必要があります。

0
Alex