如何使用libcurl4安装mongod?

时间:2019-07-08 20:33:43

标签: mongodb debian

Debian10已升级到libcurl4,因此,mongo服务器的安装失败。可以用libcurl4运行mongod吗?

在执行mongod二进制文件时,我得到/ usr / bin / mongod:/usr/lib/x86_64-linux-gnu/libcurl.so.4:找不到版本“ CURL_OPENSSL_3”(/ usr / bin / mongod要求)

在尝试安装libcurl3时,我收到消息说libcurl4将其替换。

3 个答案:

答案 0 :(得分:0)

现在,只需使用为Ubuntu 18.4构建的版本。

以下是链接:https://www.mongodb.com/dr/repo.mongodb.org/apt/ubuntu/dists/bionic/mongodb-org/4.0/multiverse/binary-amd64/mongodb-org-server_4.0.10_amd64.deb/download

Ubuntu基于Debian Testing,因此使用该版本应该不会有问题。 Mongo可能会很快更新其Debian版本。然后,您可以安装Debian10

答案 1 :(得分:0)

解决库依赖问题的另一种方法是使用docker容器。

例如,在这种情况下,安装docker-ce后,您可以运行以下命令:

docker run -d --name mongo-4.0.9  -p 127.0.0.1:27017:27017  --restart unless-stopped -v /var/lib/mongodb:/data/db mongo:4.0.9 

那样,您就不必依赖系统依赖项了。

希望这会有所帮助。

答案 2 :(得分:0)

我在 2021 年 7 月在 Debian 10 (Buster) 上收到了同样的问题,此前我正在关注官方 MongoDB 文档以在新的 Debian 机器上设置旧的 Mongodb 版本 (4.0)。

执行这些步骤后,您将同时安装 licurl3 和 libcurl4。到目前为止,我还没有发现任何损坏的依赖项。

root@mongo21-1 ➜  sources.list.d  cat <<EOF > /etc/apt/sources.list.d/mongodb_org_deb.list
deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main
EOF


root@mongo21-1 ➜  sources.list.d  apt update



root@mongo21-1 ➜  sources.list.d  apt install -y mongodb-org-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 mongodb-org-server : Depends: libcurl3 (>= 7.16.2) but it is not installable
E: Unable to correct problems, you have held broken packages.


所以问题是 Mongo 明确需要 libcurl3,但最新的 Debian 10 版本不再支持它。但是,您可以执行以下操作:

root@ecollect-mongo21-1 ➜  sources.list.d  cat <<EOF > /etc/apt/sources.list.d/oldstable.list
deb http://security.debian.org/ oldstable/updates main
EOF

root@mongo21-1 ➜  sources.list.d  apt update

root@mongo21-1 ➜  sources.list.d  apt install -y libcurl3/oldstable

root@mongo21-1 ➜  sources.list.d  apt install -y mongodb-org-server

就像一个魅力!

编辑:以下是一些可以自动执行此操作的可靠任务:

---

  - name: Ensure deb keyring for mongodb
    apt_key:
      state: present
      url: https://www.mongodb.org/static/pgp/server-4.0.asc





  - name: Ensure mongodb deb source
    apt_repository:
      filename: /etc/apt/sources.list.d/repo-mongodb_org-debian-apt
      state: present
      repo: "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main"




  - name: Ensure libcurl3 source
    apt_repository:
      filename: /etc/apt/sources.list.d/oldstable.list
      state: present
      repo: "deb http://security.debian.org/ oldstable/updates main"





  - name: Install packages - mongodb-org-server
    apt:
      name: mongodb-org-server
      state: present


  - name: Install packages - mongodb-org-shell
    apt:
      name: mongodb-org-shell
      state: present


  - name: Install packages - mongodb-org-tools
    apt:
      name: mongodb-org-tools
      state: present