如何在debianstretch中安装mongodb 3.4(9)?

如何在debianstretch中安装mongodb 3.4(9)?

我想在 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软件包并安装它。libcryptolibssllibssl1.0.0

amd64版本的包可以找到这里(只需谷歌搜索 libssl1.0.0 Jesse 和您的 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) ...

最后,让我们确保服务已启动并且可以与 shell 进行连接:

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

相关内容