无法在Ubuntu 22.04上安装Mongodb。

我无法在Ubuntu 22.04上安装MongoDB。我正在按照官方安装文档进行操作。
按照安装说明进行操作后,我得到了以下输出:

this is the output I am getting after following the official documentation

https://repo.mongodb.org/apt/ubuntu/focal/mongodb-org/5.0/Release.gpg:  
Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg),  
see the DEPRECATION section in apt-key(8) for details.

2请复制/粘贴并格式化文本,而不是文字图片。在纯文本终端上无法阅读图片(文字),也无法从中复制(编辑、尝试和使其正常工作),甚至需要采取行动才能阅读您的问题。由于我们都是志愿者,有些人可能不会点击。请阅读https://askubuntu.com/help/formatting - waltinator
1告诉我们你“遵循”的远程过程(RP)并不能帮助我们为你提供帮助,原因如下:1)它是远程的。链接明天还存在吗?2)阅读RP并不能告诉我们你是否准确地“遵循”了它。你是否出现了拼写错误或漏掉了某些行?我们也有这样的情况。3)阅读RP无法包含你在系统上收到的错误信息。这些错误信息(以及导致错误的命令)是任何诊断的关键要素。 - waltinator
1Ubuntu 22.04目前还不存在,它目前是开发版本的Ubuntu Jammy,并将保持这个状态直到达到RC阶段,预计在2022年4月14日之后,直到2022年4月21日发布之前,这里不适合讨论。请参考https://discourse.ubuntu.com/t/jammy-jellyfish-release-schedule/23906。有关Ubuntu Jammy的支持问题,请使用#ubuntu-next或#ubuntu+1网站(IRC、UF等)。 - guiverc
如果您希望报告错误,请首先感谢您帮助测试发布版本,但请参阅https://help.ubuntu.com/community/ReportingBugs,并使用诸如IRC、https://ubuntuforums.org/等#ubuntu+1网站。*此网站不追踪ubuntu+1或#ubuntu-next问题*。 - guiverc
1你的 apt update 输出显示了混合的 focal 和 jammy 源。看起来你在 jammy 系统中添加了错误版本的 focal mongodb 源。请咨询 mongodb 上游获取有关 jammy 安装说明。由于 22.04 还没有发布,这些说明可能尚未公布。 - user535733
我在Ubuntu 20.04上安装MongoDB,然后升级到Ubuntu 22.04,这样行得通吗? - Mihir Panchal
你很可能会发现focal软件包在jammy上不可用,这将阻止进行release-upgrade,除非您首先删除那些第三方软件包,否则您将回到当前的状态。Ubuntu jammy仍处于beta测试阶段,是一个未发布的产品,仅供测试使用,因此在发布之前还有时间发现、报告和修复问题。 - guiverc
这个回答解决了你的问题吗?更新系统时出现apt-key弃用警告 - karel
7个回答

以下解决方案对我安装mongodb有效:
  1. 下载libssl1.1_1.1.1f-1ubuntu2_amd64.deb

    wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
    
  2. 使用dpkg命令进行安装:

    sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
    
  3. 然后安装从https://www.mongodb.com/下载的mongodb-org-server_6.0.0_amd64.deb

this link中使用的说明来安装libssl1.1在Ubuntu 22.04 LTS。

1这似乎不再起作用了。apt-get update 返回:错误:8 http://security.ubuntu.com/ubuntu impish-security Release 404 未找到 [IP: 91.189.91.39 80] - Daniel Gillespie
1谢谢!对我来说很有效 - Ubuntu 22.04 - AndreGraveler
1它起作用了。谢谢。第三点应该简单地是:sudo apt-get install -y mongodb-org - Abdul Saleem
1第四点:sudo systemctl start mongod - Abdul Saleem
1这对我有用 - Peyton Hanel

你正在使用的命令在Ubuntu Jammy(22.04 LTS)上不起作用,这些命令只适用于Ubuntu Focal(20.04 LTS)。Mongodb团队仍在努力支持Ubuntu Jammy(x86),你可以在https://jira.mongodb.org/browse/SERVER-62300上关注此问题的进展情况。

如果您只对客户端(`mongosh`)感兴趣,可以在mongo仓库上以22.04的版本获取,无需安装libssl1.1。
# download the GPG key (avoids the deprecation warning with apt-key)
wget https://www.mongodb.org/static/pgp/server-6.0.asc
gpg --no-default-keyring --keyring ./temp-keyring.gpg --import server-6.0.asc
gpg --no-default-keyring --keyring ./temp-keyring.gpg --export --output mongo-server-6.0.gpg
sudo mv mongo-server-6.0.gpg /etc/apt/keyrings/

# add the mongo repository, trusting the GPG key
echo "deb [signed-by=/etc/apt/keyrings/mongo-server-6.0.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

# install mongo
sudo apt update
sudo apt install mongodb-mongosh

# delete the files
rm temp-keyring.gpg* server-6.0.asc*

# 

基于 https://askubuntu.com/a/1307181/918106 避免 apt-key 警告。


最后,MongoDB的存储库已经为Ubuntu 22提供了软件包。 您可以在/etc/apt/source.list.d目录下的任何apt文件中使用此行。
deb [arch=amd64,arm64] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse 然后进行安装。我不确定它是否已经正式发布,但在我的jammy实例上似乎工作正常。

中文:E: 仓库 'https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 Release' 未经签名。 - Ohad Cohen
使用以下命令获取密钥: wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - - Gadi
  • Gabi 在我在这里写完之后,我在下一个回答中找到了它。不管怎样,还是谢谢。
- Ohad Cohen

你会遇到这个错误是因为在Ubuntu 22.04中,libssl1.1被替换为libssl3。在MongoDB正式支持22.04之前,可以通过运行以下命令来快速修复:
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
sudo apt-get update
dpkg -i libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb

对我来说很有效 :)

这不是重复的。他的解决方案不起作用,因为他的链接已经失效了。以前它是可以工作的,但现在不行了。对于mongodb 6.00也不起作用,因为他使用的libssl1.1版本在6.0安装中无法识别。我刚刚30分钟前尝试过,但由于我的声誉较低,无法在他的帖子上发表评论。@karel - Amr Shawki
你的解决方案对我有效,但在互联网上我看到这并不是安全的做法。这个技巧是否有可能带来潜在的漏洞副作用? - Dhruvsito
3@Dhruvify 我真的不知道。一般来说,TLS 1.1已经被弃用,因为它存在许多安全漏洞,这可能是Ubuntu迁移到TLS 3.0的原因,因为后者更加安全。我猜重新安装TLS 1.1会使你暴露在这些漏洞之中?不确定他们是否因此称其为不安全,但目前来说,在官方支持22.04之前,你无法运行MongoDB而不进行这个操作。 - Amr Shawki

使用这个简单的命令在Ubuntu 22.04 LTS上安装MongoDB

导入软件包管理系统使用的公钥。

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

操作应该返回一个OK。
但是,如果收到一个错误提示说gnupg没有安装,你可以:
使用以下命令安装gnupg及其所需的库:
sudo apt-get install gnupg

安装完成后,请重试导入密钥。
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -

创建 MongoDB 的列表文件

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

重新加载本地软件包数据库并安装MongoDB sudo apt-get update sudo apt-get install -y mongodb-org
sudo systemctl start mongod.service 如果在启动mongod时收到类似以下错误的消息:
无法启动mongod.service:找不到mongod.service单元。
请先运行以下命令:
sudo systemctl daemon-reload

sudo systemctl status mongod

sudo systemctl enable mongod.service 

sudo systemctl restart mongod.service 

检查它是否正在运行
mongosh

由于缺少依赖项,导致在Ubuntu 22.04上无法安装mongodb。 主要原因是缺少libssl1.1的依赖。因此我们需要单独安装它。
  1. 安装一些所需的软件包:

    sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
    
  2. 运行:

    echo "deb http://security.ubuntu.com/ubuntu impish-security main" | sudo tee /etc/apt/sources.list.d/impish-security.list
    
  3. 进入 root shell:

    sudo -i
    

    并运行以下命令:

    wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
    
  4. 更新软件包列表:

    apt update
    
  5. 安装 libssl1.1

    apt install libssl1.1
    
  6. 运行:

    wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
    
  7. 运行:

    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
    
  8. 更新软件包列表:

    apt update
    
  9. 安装 mongodb-org

    apt install -y mongodb-org
    

    将安装最新版本的 MongoDB。

    要启动它,请运行:

    systemctl enable mongodb
    systemctl start mongodb
    
  10. 如果 MongoDB 未能启动,请运行以下命令重新加载:

    systemctl daemon-reload
    
  11. 最后,退出 root shell:

    exit
    

  • 相关问题