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将其替换。
答案 0 :(得分:0)
现在,只需使用为Ubuntu 18.4构建的版本。
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