在 Ubuntu 18.04 上安装 Mongodb 时出现以下错误:
dpkg: dependency problems prevent configuration of mongodb-org:
mongodb-org depends on mongodb-mongosh; however:
Package mongodb-mongosh is not configured yet.
dpkg: error processing package mongodb-org (--configure):
dependency problems - leaving unconfigured
Setting up mongodb-org-tools (6.0.3) ...
Setting up mongodb-org-server (6.0.3) ...
System has not been booted with systemd as init system (PID 1). Can't operate.
Setting up mongodb-org-database (6.0.3) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Errors were encountered while processing:
mongodb-org
E: Sub-process /usr/bin/dpkg returned an error code (1)
答案1
请参阅下面的脚注。
来自该消息:
系统尚未使用 systemd 作为初始化系统 (PID 1) 启动。无法操作。
... 看起来您正在 Windows Subsystem for Linux 下使用 Ubuntu 18.04。您也有可能在其他容器化系统(如 Docker)下使用它,但在这种情况下,您最有可能使用官方MongoDB docker 镜像,而不是尝试直接安装它。
假设是 WSL,会发生以下几件事:
首先,请注意,虽然 18.04 目前仍是此处的主题,但其标准支持将在大约 3 个月后结束。强烈建议您继续升级到 22.04,您将获得 4 年以上的持续支持。4 月之后,有关 18.04 的问题将不再是 Ask Ubuntu 上的主题。
错误消息本身是因为 WSL 的默认安装当前未运行 Systemd。最近,最新版本的 WSL 中添加了 Systemd 支持,但默认情况下未启用。请参阅这个答案了解当前状态和说明。但是...
我相信你正在使用MongoDB 官方发布已经这样了,很好。
我认为您不一定需要在 WSL 上启用 Systemd 才能运行 MongoDB。请参阅WSL 文档有关如何在 WSL 上配置 MongoDB 的信息。文档适用于 Ubuntu 20.04 和 MongoDB 5.x,但我相信步骤相同应该在 18.04 和 6.x 上工作(未经证实)。
本质上,这涉及下载和使用
init.d
脚本来启动 MongoDB,而无需 Systemd。该脚本是官方 MongoDB 存储库的一部分,这就是为什么我假设它仍适用于 6.x。请注意,在我看来,除了直接在 Ubuntu 上安装 MongoDB 之外,另一个不错的选择是使用 Docker。具体做法如下:
安装适用于 Windows 的 Docker 桌面,其中包括 WSL2 集成。
在最基本的层面上,你可以通过简单地运行以下命令来启动 MongoDB:
docker run --name some-mongo -d mongo
查看MongoDB Docker 映像了解更多信息。您当然也需要学习如何使用 Docker,但如果您要使用 MongoDB(或其他任何工具)执行开发任务,则强烈建议您使用它。
脚注:
我将继续发布答案,以尝试节省由于评论的异步性质而导致的延迟。我基于您使用 Windows Subsystem for Linux 的假设来回答这个问题。其他几位社区成员也同意这是最有可能的情况。感谢并赞扬 @ArturMeinild 引起了我的注意,并且在将其交给我之前已经对此进行了一些研究(因为我是这里的“WSL 专家” ;-)。