当我尝试使用https://docs.mongodb.com/getting-started/shell/tutorial/install-mongodb-on-ubuntu/
16.04 上的说明安装 mongodb 时,我在安装步骤中得到以下结果:
jonathan@poseidon:~$ sudo apt-get install mongodb-org
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package mongodb-org is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'mongodb-org' has no installation candidate
我用 Wireshark 检查了 HTTP 流量,发现唯一的流量是列表的 HTTP GET 和 HTTP 304 响应,这表明问题出在我的本地配置文件中。我的 sources.list.d 文件包含以下条目:
mongodb-org-3.4.list
我需要做什么才能继续解决此问题?
编辑:我尝试在 VirtualBox 下新安装 16.04 时再次执行此操作。我检索了密钥,创建了列表文件,并sudo apt update
得到了以下结果:
jonathan@Ubuntu-16:~$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
[sudo] password for jonathan:
Executing: /tmp/tmp.uWYpRUWfjK/gpg.1.sh --keyserver
hkp://keyserver.ubuntu.com:80
--recv
0C49F3730359A14518585931BC711F9BA15703C6
gpg: requesting key A15703C6 from hkp server keyserver.ubuntu.com
gpg: key A15703C6: public key "MongoDB 3.4 Release Signing Key <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
jonathan@Ubuntu-16:~$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse
jonathan@Ubuntu-16:~$ sudo apt update
Ign:1 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 InRelease
Get:2 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release [3 462 B]
Hit:3 http://mx.archive.ubuntu.com/ubuntu xenial InRelease
Get:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]
Get:5 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release.gpg [801 B]
Get:6 http://mx.archive.ubuntu.com/ubuntu xenial-updates InRelease [95.7 kB]
Ign:5 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release.gpg
Get:7 http://mx.archive.ubuntu.com/ubuntu xenial-backports InRelease [92.2 kB]
Reading package lists... Done
W: GPG error: http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY D68FA50FEA312927
E: The repository 'http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
jonathan@Ubuntu-16:~$
如您所见,检索到的密钥用于 Mongodb 3.4,而不是 Mongodb 3.2,这解释了 apt update 中的 GPG 失败。有谁知道在哪里可以得到正确的密钥?
Ubuntu 18.04 和 MongoDB 4.2
首先,如果安装了 MongoDB,请从以前的版本中删除:
删除任何 mongodb repo 列表文件:
现在,添加新密钥:
添加新的存储库:
安装 MongoDB
启用并启动
mongod
服务器服务:检查您的安装:
您还可以检查您的服务是否已启动:
Ubuntu 20.04 和 MongoDB 4.4 或 MongoDB 5.0
首先,如果安装了 MongoDB,请从以前的版本中删除:
删除任何 mongodb repo 列表文件:
现在,为MongoDB 4.4添加新密钥:
MongoDB 5.0的新密钥:
为MongoDB 4.4添加新的存储库:
或者MongoDB 5.0的新存储库:
安装 MongoDB
启用并启动
mongod
服务器服务:检查您的安装:
或者
您还可以检查您的服务是否已启动:
希望这可以帮助!
除了@Terrance 的回答之外,您还可以通过以下方式找到合适的 sig 密钥。在这种情况下,示例适用于 mongodb,但也可以类似地用于任何其他包。在执行 @Terrance 的答案中的行之前:
转到ubuntu 密钥服务器以查找实际密钥
搜索感兴趣的字符串(以 mongodb 为例)并提交第一个表单(您不需要第二个表单) - 单击
Search!
按钮您可以在那里看到两行带有键的行。关注最实际的日期。第一个字符串是创建日期,而第二个字符串是有效到期日期。
使用第 5 点中提到的行中的 sig - 如果从图片中可以
A15703C6
继续 Terrance 的回答是否需要像我一样安装包或升级
第一次运行:
建议同时从
/etc/apt/sources.list
文件中删除与 MongoDB 相关的任何行。然后使用Ubuntu 官方 MongoDB 安装说明中提供的命令重新安装 MongoDB 。
提供的链接中的命令如下
对我也没什么用,所以我去了 mogodb 网站并按照以下说明从 tarball 安装:
安装依赖项:
从此页面下载压缩包
cd
到下载目录或文件所在的任何位置,然后将其解压缩:二进制文件位于
bin
提取结构的目录中。您可以将此目录添加到 PATH 或将文件复制到/usr/local/bin
其他 PATH 位置。我今天正在努力在 Ubuntu 20.04.1 LTS(Focal Fossa)中安装 mongodb 4.2。我是一个新用户,我花了一些时间才弄清楚。@Terrance 写的答案帮助我解决了我的问题。我按照以下步骤将其安装到我的系统中:
希望这对其他人有帮助。谢谢你。
已解决 注意检查您的版本,在这种情况下是 3.2
希望这对安装 MongoDB 版本 3.4.17 有所帮助
(这在 ubuntu 焦点 20.04.01 LTS 中对我有用,但希望它也适用于其他版本!)
尝试这个:
我也遇到了同样的问题…………
https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/
转到此链接并按照步骤操作……这对我有用
解决了