在Amazon Linux 2023 Cloud9环境中安装Mongo Shell时缺失libcrypto等依赖库的问题
在Amazon Linux 2023 Cloud9环境中安装Mongo Shell时缺失libcrypto等依赖库的问题
我最近在跟着AWS相关教程操作时,正好碰到了你这个一模一样的问题——在Amazon Linux 2023的Cloud9环境里执行sudo yum install -y mongodb-org-shell时,弹出了libcrypto.so.10和libssl.so.10依赖缺失的错误提示。
问题根源
Amazon Linux 2023默认搭载的是OpenSSL 3.x版本,而你尝试安装的mongodb-org-shell-5.0.0是针对旧版系统(比如Amazon Linux 2)编译的,它依赖的是OpenSSL 1.0系列的库文件(也就是报错里提到的libcrypto.so.10、libssl.so.10),版本不兼容自然就找不到依赖了。
解决方案
这里有两种可行的处理方式,推荐优先用第一种:
安装兼容OpenSSL 3.x的Mongo Shell版本
MongoDB 6.0及以上版本已经支持OpenSSL 3.x,你可以直接安装对应版本的shell:sudo yum install -y mongodb-org-shell-6.0.*如果yum找不到这个版本,可能是你的MongoDB仓库配置还是旧的,需要先更新仓库文件:
- 编辑MongoDB的repo配置文件:
sudo vi /etc/yum.repos.d/mongodb-org.repo - 将文件内容替换为针对Amazon Linux 2023的6.0版本仓库:
[mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc - 保存退出后再执行上面的安装命令即可。
- 编辑MongoDB的repo配置文件:
安装OpenSSL 1.0兼容库(不推荐)
如果你必须使用5.0版本的Mongo Shell,可以尝试安装OpenSSL 1.0的兼容包,但这种方式可能会和系统自带的OpenSSL 3.x产生冲突,引发其他潜在问题,所以谨慎使用:sudo amazon-linux-extras install -y openssl1.0安装完兼容库后再重新执行
sudo yum install -y mongodb-org-shell试试。
验证安装
安装完成后,执行下面的命令确认Mongo Shell是否正常可用:
mongosh --version
备注:内容来源于stack exchange,提问作者0xBradock




