无法在ubuntu 18.04 LTS上正确安装mongodb

Uma*_*mar 12 ubuntu mongodb

我试图在我的Ubuntu 18.04 LTS上安装mongodb,但它有以下错误说

您可能希望运行'apt --fix-broken install'来纠正这些问题.以下软件包具有未满足的依赖项:mongodb-org:取决于:mongodb-org-server但它不会被安装取决于:mongodb-org-mongos但它不会被安装取决于:mongodb-org-tools但是它不会安装E:未满足的依赖项.尝试'apt --fix-broken install'没有包(或指定解决方案).umar @ umar-Lenovo-ideapad-320-15ISK:〜/ Desktop/portfolio/async-demo $ sudo apt-get install -y mongodb

我明白这背后的原因已经在他们的网站上提到了,明确地说

平台支持

MongoDB仅提供64位LTS(长期支持)Ubuntu版本的软件包; 例如,14.04 LTS(可信赖)和16.04 LTS(xenial).有关更多信息,请参阅支持的平台.

这些软件包可以与其他Ubuntu版本一起使用; 但是,它们不受支持.

那么如何在我最新的Ubuntu 18.04 LTS上安装mongodb?为了清楚起见,我列出了我为纠正错误而做的事情:我按照他们的官方网站安装了mongodb

1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
2. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
3. sudo apt-get update
4. sudo apt-get install -y mongodb-org
Run Code Online (Sandbox Code Playgroud)

现在我在这里遇到错误:你可能想运行'apt --fix-broken install'来纠正这些错误.以下包具有未满足的依赖项:

我试过了,

apt --fix-broken install
Run Code Online (Sandbox Code Playgroud)

它没有用,我得到了一些线索

sudo apt -f install
Run Code Online (Sandbox Code Playgroud)

它也返回错误.

处理时遇到错误:/var/cache/apt/archives/mongodb-org-server_4.0.0_amd64.deb /var/cache/apt/archives/mongodb-org-mongos_4.0.0_amd64.deb/var/cache/apt /archives/mongodb-org-tools_4.0.0_amd64.deb E:子进程/ usr/bin/dpkg返回错误代码(1)

我认为主要问题是与版本的兼容性.所以基本上我有Ubuntu 18.04,我如何在这个版本上安装mongodb,这样我就可以毫无困难地工作.

Moh*_*mar 25

你需要先卸载mongodb,你可以使用:

sudo apt-get purge mongodb-org*
Run Code Online (Sandbox Code Playgroud)

在此之后,通过以下命令安装mongodb:

sudo apt-get install mongodb
Run Code Online (Sandbox Code Playgroud)

然后更新:

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

你完成了mongodb的安装.您可以使用以下命令进行检查:

mongo --version
Run Code Online (Sandbox Code Playgroud)

  • 这是针对旧版 mongo 的 (9认同)

rku*_*ngo 19

只是想在这里插话。我是 MongoDB Server Docs 的高级技术作家。这篇文章是少数提出“在 Ubuntu 18.04 上安装 MongoDB”的文章之一,这里有几条评论引用了mongodb安装包。mongodbUbuntu 提供的非官方包不是由 MongoDB 维护的。您应该始终使用官方的 MongoDBmongodb-org包。此外,从一些个人测试来看,mongodb如果您尝试安装mongodb-org,安装似乎会导致问题,所以它只是增加了麻烦

有几次我在本地测试时遇到这个问题,尝试安装其中一个子包(即mongodb-org-server)通常会出现实际错误(即 missing libcurl3,它在 18.04 中作为默认安装库被删除)。这些问题在测试开发构建时可能更常见(在撰写本文时,这是 4.2 开发系列)。

要检查您在本地系统上安装了哪个软件包,请运行以下命令:

sudo apt list --installed | grep mongo
Run Code Online (Sandbox Code Playgroud)

这是我安装后的输出mongodb,然后尝试mongodb-org

mongo-tools/bionic,now 3.6.3-0ubuntu1 amd64 [installed,auto-removable]
mongodb-org/bionic,now 4.0.5 amd64 [installed]
mongodb-org-shell/bionic,now 4.0.5 amd64 [installed,automatic]
mongodb-server-core/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed,auto-removable]
Run Code Online (Sandbox Code Playgroud)

所以你可以看到,我在两个包之间进行了混合(以及一堆dkpg错误)。我结束了使用的混合apt removeapt autoremove以及apt purge来修复系统。


Mic*_* S. 7

安装 MongoDB 并使用的最简单方法mongod命令的最简单方法。

\n
    \n
  1. 更新包列表。

    \n
     $ sudo apt update\n
    Run Code Online (Sandbox Code Playgroud)\n
  2. \n
  3. 安装 MongoDB。

    \n
     $ sudo apt install -y mongodb\n
    Run Code Online (Sandbox Code Playgroud)\n
  4. \n
  5. 检查服务的状态。

    \n
     $ sudo systemctl status mongodb\n
    Run Code Online (Sandbox Code Playgroud)\n

    3a. 你应该看到

    \n
     \xe2\x97\x8f mongodb.service - An object/document-oriented database\n   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor \n   preset:enabled)\n   Active: active (running) since Sat 2019-03-11 10:45:01 UTC; 4min 13s ago\n   Docs: man:mongod(1)\n   Main PID: 2312 (mongod)\n   Tasks: 23 (limit: 1153)\n   CGroup: /system.slice/mongodb.service\n         \xe2\x94\x94\xe2\x94\x802312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config\n   /etc/mongodb.conf\n
    Run Code Online (Sandbox Code Playgroud)\n
  6. \n
  7. 允许默认访问 MongoDBport 27017

    \n
      $ sudo ufw allow 27017\n
    Run Code Online (Sandbox Code Playgroud)\n
  8. \n
  9. 检查状态

    \n
      $ sudo ufw status\n
    Run Code Online (Sandbox Code Playgroud)\n
  10. \n
\n

5a. 你应该看到

\n
     Status: active\n     To                         Action      From\n     --                         ------      ----\n     27017                      ALLOW       Anywhere\n     27017 (v6)                 ALLOW       Anywhere (v6)\n
Run Code Online (Sandbox Code Playgroud)\n

5b. 如果返回的话inactive

\n
     $ sudo ufw enable\n\n     Output:\n     Firewall is active and enabled on system startup.\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 检查/目录下是否有data/db目录,如果没有:

    \n
      $ sudo mkdir -p /data/db\n
    Run Code Online (Sandbox Code Playgroud)\n
  2. \n
  3. 要运行mongod一个,您需要停止 mongodb:

    \n
      $ sudo systemctl stop mongodb\n
    Run Code Online (Sandbox Code Playgroud)\n
  4. \n
  5. 最后,您可以运行mongod

    \n
      $ sudo mongod\n
    Run Code Online (Sandbox Code Playgroud)\n
  6. \n
\n


Ole*_*ass 5

这是因为到目前为止,适用于Ubuntu 18.04的Mongo DB仅作为开发版本提供(请参阅:MongoDB Distros)。

我只是通过执行以下操作安装它:

添加相应的签名:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4B7C549A058F8B6B  
Run Code Online (Sandbox Code Playgroud)

添加支持的版本:

echo "deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/development multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Run Code Online (Sandbox Code Playgroud)

更新:

    sudo apt update
Run Code Online (Sandbox Code Playgroud)

安装:

sudo apt install mongodb-org-unstable
Run Code Online (Sandbox Code Playgroud)

如果出现“ GPG错误”,请使用错误消息中显示的密钥重复步骤1。您可能可以通过安装

sudo apt install mongodb
Run Code Online (Sandbox Code Playgroud)

但是根据MongoDB,此功能不受支持,并且很可能不会安装最新版本。


Ray*_*orm 5

基于这个优秀的答案:https : //stackoverflow.com/a/51421152/659354

还有这个页面:https : //docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

我用来安装MongoDB 4.2的命令

sudo apt-get purge mongo*-注意: mongo 删除客户端和服务器。

sudo apt-get install mongodb-org-注意:安装命令在 Mongodb.org 源添加到 Apt-get 源列表后运行。