E: 无法找到mongodb-org软件包

136
我正在尝试下载mongodb,并遵循此链接中的步骤:link
但是当我到达以下步骤时:
sudo apt-get install -y mongodb-org

我遇到了以下错误:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package mongodb-org  //This is the error
为什么会发生这种情况,有没有解决方法?
13个回答

232

我曾经遇到过同样的问题,但通过更改包文件部分命令来解决了它。我遵循的步骤是:

首先尝试使用这个命令:

sudo apt-get install -y mongodb

这是Ubuntu提供的非官方mongodb软件包,由Ubuntu维护,与MongoDB官方支持的软件包有冲突。

如果上述命令无效,则可以通过以下任一程序修复此问题:

步骤1:导入MongoDB公钥

在Ubuntu 18.*+中,您可能会收到无效签名错误。--recv值可能需要更新为EA312927

有关无效签名问题的更多详细信息,请参见此处:MongoDB GPG - Invalid Signatures

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

步骤 2:生成一个包含 MongoDB 仓库 URL 的文件

echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list

步骤三:使用软件包刷新本地数据库

sudo apt-get update

第四步:在我们的系统上安装最新稳定版 MongoDB 和所有必要的包

sudo apt-get install mongodb-org

如果Ubuntu提供的非官方mongodb包没有得到MongoDB的维护并与MongoDB官方支持的包发生冲突,那么请使用官方的MongoDB mongodb-org包,这些包会与最新的MongoDB主要和次要版本保持同步。

sudo apt-get install -y mongodb

希望这对您也有用。 您可以按照此MongoDB的指示。

更新

上述说明将安装mongodb 2.6版本,如果您想为Ubuntu 12.04安装最新版本,则只需省略上述的第2步并按照以下说明进行操作:

第2步:生成一个包含MongoDB存储库URL的文件

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list

如果你使用的是Ubuntu 14.04,那么请使用下面的步骤代替上面的第2步

第2步:生成一个包含MongoDB仓库URL的文件

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

1
在Ubuntu 14.10上对我有用(其他答案没有),在我修复第二步中的命令后。 - julien_c
1
哎呀,不好意思,还是不行(这将安装Mongo 2.6,而不是最新的稳定版3.0)。请查看我的答案。 - julien_c
48
很遗憾,这个方法可行,而官方网站的指导却不行。 - Dan
1
MongoDB官方的说明没有提到仓库URL是2.6版本的。我必须按照您更新的第二步骤,使用正确的URL才能使用sudo apt-get install mongodb-org。之后问题得到了解决。 - Daniel Eagle
2
我尝试了Ubuntu 14.04的命令,但它仍然无法工作! - alexventuraio
显示剩余10条评论

65

真正的问题可能是您使用的是32位系统。MongoDB 3.X从未设计用于32位系统,因此32位存储库为空(因此找不到它)。安装默认的2.X Ubuntu软件包可能是最好的选择:

sudo apt-get install -y mongodb 


如果你仍然想要获取Mongo的最新版本,这里有另一个解决方案:

你可以前往https://www.mongodb.org/downloads并使用下拉菜单选择“Linux 32位旧版”。

但是它有严重的限制...

这个32位旧版的发行版不包括SSL加密,并且仅限于大约2GB的数据。通常情况下,你应该使用64位版本。请参见这里了解更多信息。


55

尝试去掉“-org”:

sudo apt-get install -y mongodb

这对我有用!


8
这可能是Ubuntu的默认软件包。如果您想要最新版本的mongo,它就没什么用了。 - battery
1
这可能确实是Ubuntu的默认软件包。适合快速启动,但如果您特别需要来自mongo.org的最新软件包,则需要额外的步骤。 - Phil B
2
这里的真正问题可能是您使用的是32位系统。MongoDB 3.X从未设计用于32位系统,因此32位的库是空的(这就是为什么找不到的原因)。 - Phil B
2
这正是问题所在,也是真正的答案 :-) 这只是Mongo网站没有明确说明的事情。他们在一个地方说你应该在64位上运行MongoDB进行生产,在另一个地方则说他们为测试环境提供32位和64位的软件包。 - battery
我在下面添加了一个更详细的答案,总结了问题(基于所有有用的评论,谢谢!)并提出了一些解决方法。你能否请赞同那个答案而不是这个? - Phil B
Package 'mongodb' has no installation candidate - Fresz

7

我正在使用Ubuntu 14.04,但apt仍然找不到该软件包。我尝试了以上所有答案和更多方法。

对我有效的URL是:

echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list

来源:http://www.liquidweb.com/kb/how-to-install-mongodb-on-ubuntu-14-04/

本文将详细介绍如何在Ubuntu 14.04上安装MongoDB。MongoDB是一个流行的NoSQL数据库,它以其灵活性和可伸缩性而闻名,特别适合大型数据集。要安装MongoDB,请先添加MongoDB存储库,然后更新apt-get包列表,最后安装MongoDB软件包。完成这些步骤后,您可以使用MongoDB来创建和管理数据库。

6

所有步骤都是正确的,只需将步骤4更改为以下内容:

  • 步骤4:在我们的系统上安装最新稳定版本的MongoDB和所有必要的软件包

命令:sudo apt-get install mongodb

这对我有效。


1
这是安装Ubuntu默认的非官方Mongo包,Naim的顶部答案已经提到了这一点。你不需要按照以前的步骤操作。 - shaahiin

5
如果您目前正在使用MongoDB 3.3存储库(正如MongoDB网站当前建议的那样),则应考虑使用版本3.3使用的软件包名称:mongodb-org-unstable。然后,此版本的正确安装命令将为:
sudo apt-get install -y mongodb-org-unstable

考虑到这一点,我建议使用当前最新的稳定版本(v3.2),直到v3.3稳定为止。以下是安装的命令:

下载v3.2存储库密钥:

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

如果您使用的是Ubuntu 12.04Mint 13,请添加以下存储库:
echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

如果您使用的是Ubuntu 14.04Mint 17,请添加以下存储库:
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

如果您使用的是Ubuntu 16.04或Mint 18,请添加以下存储库:
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

更新软件包列表并安装Mongo:

sudo apt-get update
sudo apt-get install -y mongodb-org

E: Unable to locate package mongodb-org-unstable - alper

3

目前被普遍接受的答案虽然可行,但是会安装Mongo的已过时版本。

Mongo文档说明:MongoDB仅提供Ubuntu 12.04 LTS(Precise Pangolin)和14.04 LTS(Trusty Tahr)的软件包。但是,这些软件包可能适用于其他Ubuntu版本。

因此,要获取最新稳定的Mongo(3.0),请使用以下方法(与第二个步骤不同):

    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
    echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list
    apt-get update
    apt-get install mongodb-org

希望这能有所帮助。
我想补充一点,在进行下一步操作之前,您必须检查您的GNU/Linux发行版版本,以构建Repo列表URL。对于我来说,我正在使用以下版本:
DISTRIB_CODENAME=rafaela
DISTRIB_DESCRIPTION="Linux Mint 17.2 Rafaela"
NAME="Ubuntu"
VERSION="14.04.2 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.2 LTS"

原始的第二步:


"Create a list file for MongoDB": "echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list"
无法正常工作,因为它生成了一个错误的仓库URL。基本上,它将分发代号"rafaela"置于URL仓库中,而该代号不存在。您可以在软件源附加存储库下的包管理器中检查Repo URL。
我所做的是浏览网站: http://repo.mongodb.org/apt/ubuntu/dists/ 我发现对于Ubuntu,只有"trusty"和"precise"这两个网络文件夹可用,而不是"rafaela"。 解决方法:以root身份打开文件'mongodb-org-3.1.list'或'mongodb.list',并替换相应版本的"rafaela"或您的发布版本(对我来说是:"trusty"),保存更改并继续下一步。此外,您的软件包管理器也可以轻松更改repo URL。
希望这对您有用!---

1

首先需要添加软件包数据库并添加 PGP 密钥。

运行以下命令:

#add pgp key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

#add package file
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

#update package list
sudo apt-get update

#install mongo
sudo apt-get install -y mongodb-org

2
我已经有了,前三步都完美运行,但是在第四步出现了上述错误。 - anonn023432
如果没有运行apt-get update和/或源列表为空,就会发生这种情况。你能运行cat /etc/apt/sources.list.d/mongodb-org-3.0.list吗? - Jeff Sloyer
2
完成了,这是我得到的内容:deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.0 multiverse - anonn023432

1

当我按照官方文档中的步骤时,我在Ubuntu 16.04上遇到了同样的问题。
然后我在第二步中删除了文本“[ arch=amd64,arm64 ]”,这对我起作用了。

echo "deb https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list   
apt-get install -y mongodb-org  

1

我在14.04版本中也遇到了同样的问题,但是通过以下步骤解决:

  1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
  2. echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
  3. sudo apt-get update
  4. sudo apt-get install -y mongodb

它成功地解决了问题 :)


这将安装默认的Ubuntu 2.X软件包,而不是来自mongo.org的最新3.X版本(请参见上面和下面其他答案的评论)。 - Phil B
我希望你能查看官方网站http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/在官方网站中,这一行存在错误 4. sudo apt-get install -y mongodb - YLS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接