处理时遇到错误:mongodb-org

处理时遇到错误:mongodb-org

在 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 专家” ;-)。

相关内容