Ruby3.0.2升级后aws-sdk-core报错找不到兼容XML库如何解决?
解决方案
根因说明
aws-sdk-core 3.121.0运行时依赖兼容的XML解析库,当前系统已安装的gem列表中不存在其支持的ox、oga、libxml-ruby、nokogiri、rexml任意一款依赖库,因此触发加载失败报错。
修复步骤
场景一:无Gemfile直接全局管理gem
选择以下任意一种方案执行即可,优先选择无需编译的轻量方案:
- 安装纯Ruby实现的rexml(无系统依赖,安装速度最快):
gem install rexml
- 安装高性能常用XML库nokogiri:
如果系统缺少编译依赖先执行对应系统命令:
# CentOS/RHEL系系统执行 yum install -y gcc make libxml2-devel libxslt-devel # Debian/Ubuntu系系统执行 apt install -y gcc make libxml2-dev libxslt1-dev
再安装gem:
gem install nokogiri
场景二:项目使用Bundler管理依赖
在项目的Gemfile中添加任意一行依赖声明:
# 二选一即可 gem "rexml" # gem "nokogiri"
执行安装命令:
bundle install
安装完成后重启Ruby守护进程即可。
验证修复
执行irb进入交互式控制台,输入:
require "aws-sdk-s3"
返回true无报错即代表修复成功。
内容的提问来源于stack exchange,提问作者Sarga
相关产品推荐
相关产品推荐

