【问题标题】:Unable to install/remove mongodb-org on Ubuntu 18.04 Bionic - "mongodb-org-tools : Depends: mongodb-database-tools but it is not installed"无法在 Ubuntu 18.04 Bionic 上安装/删除 mongodb-org - “mongodb-org-tools:取决于:mongodb-database-tools 但未安装”
【发布时间】:2021-08-20 12:08:50
【问题描述】:

我已尝试按照the mongodb.com instructions 的说明安装 mongodb。

当我运行:sudo apt-get install -y mongodb-org 时,我得到以下信息:

The following packages have unmet dependencies.
 mongodb-org-tools : Depends: mongodb-database-tools but it is not going to be installed

建议运行apt --fix-broken install。所以我用sudo 运行它。我得到以下信息:

The following packages were automatically installed and are no longer required:
  libboost-program-options1.65.1 libgoogle-perftools4 libpcrecpp0v5 libtcmalloc-minimal4 libyaml-cpp0.5v5 mongo-tools
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  mongodb-database-tools

然后失败,并报告此错误:

Unpacking mongodb-database-tools (100.5.0) ...
dpkg: error processing archive /var/cache/apt/archives/mongodb-database-tools_100.5.0_amd64.deb (--unpack):
 trying to overwrite '/usr/bin/bsondump', which is also in package mongo-tools 3.6.3-0ubuntu1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/mongodb-database-tools_100.5.0_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

我对此的阅读:trying to overwrite '/usr/bin/bsondump', which is also in package mongo-tools 3.6.3-0ubuntu1 向我暗示mongo-tools 中有一些东西顽固地不让自己被删除。所以我尝试运行sudo apt autoremove 来删除mongo-tools。不幸的是,我得到以下信息:

The following packages have unmet dependencies.
 mongodb-org-tools : Depends: mongodb-database-tools but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

所以我按照建议再次尝试apt --fix-broken install,但没有任何成功。我需要找到一种方法来摆脱该死的mongo-tools - 但是如何?我尝试按照上面链接的同一页面上的“卸载 MongoDB 社区版”说明进行操作。

当我输入 sudo apt-get purge mongodb-org* 时,这构成了消息的一部分:

The following packages were automatically installed and are no longer required:
  libboost-program-options1.65.1 libgoogle-perftools4 libpcrecpp0v5 libtcmalloc-minimal4 libyaml-cpp0.5v5 mongo-tools mongodb-mongosh
Use 'sudo apt autoremove' to remove them.

所以现在我有mongo-tools 和这个新的mongodb-mongosh?我试图再次安装,但我遇到了同样的问题。解决方法是什么?

【问题讨论】:

    标签: node.js linux mongodb ubuntu


    【解决方案1】:

    1.通过发出以下命令停止mongod 进程:-

        sudo service mongod stop
    

    2.删除您之前安装的所有 MongoDB 包:-

        sudo apt-get purge mongodb-org*
    

    3.删除MongoDB数据库和日志文件:-

        sudo rm -r /var/log/mongodb
        sudo rm -r /var/lib/mongodb
    

    4.然后重新安装mangodb 4.4.8

    5.导入包管理系统使用的公钥:-

        wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
    

    6.以下说明适用于 Ubuntu 18.04 (Bionic):-

        echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
    

    7.更新Apt

        sudo apt-get update
    

    8.安装mongodb

        sudo apt-get install mongodb-org=4.4.8 mongodb-org-server=4.4.8 mongodb-org-shell=4.4.8 mongodb-org-mongos=4.4.8 mongodb-org-tools=4.4.8
    

    9.使用mongod --version查看是否安装成功。

    10.如果您在使用mongod时遇到任何错误

        sudo mkdir /data
        cd /data
        sudo mkdir db
        sudo pkill -f mongod
    

    11.然后使用sudo mongod命令启动服务器。

    12.使用mongo使用mongodb shell

    【讨论】:

      【解决方案2】:

      终于成功了:我尝试了sudo apt-get purge mongo-tools*sudo apt-get purge mongodb-mongosh*,这似乎可以解决问题并允许安装。

      由于某种原因,文档中的卸载说明(命令:sudo apt-get purge mongodb-org*)没有删除 mongo-tools。它可能是我之前从其他来源安装的。

      【讨论】:

      • 在以前的版本中,mongo-tools 是 mongo 服务器包的一部分,现在它们是两个不同的包。也许这引起了冲突。
      猜你喜欢
      • 2020-11-05
      • 2022-12-30
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 2022-11-10
      相关资源
      最近更新 更多