使用RVM安装Ruby 3.3.5后psych gem无法加载问题求助
解决Ruby 3.3.5中psych gem无法加载的问题
问题背景
通过rvm install 3.3.5安装Ruby后,gem列表显示psych 5.1.2已安装,但对应文件夹为空,执行任何gem操作或require 'psych'时都会报错cannot load such file -- psych,导致RubyGems功能完全无法使用。
解决方法
1. 手动绕过RubyGems依赖安装psych
因为RubyGems本身依赖psych解析YAML,直接用gem install会失败,需手动下载安装:
- 下载对应版本的gem包:
wget https://rubygems.org/downloads/psych-5.1.2.gem - 强制本地安装,跳过依赖检查:
gem install --local psych-5.1.2.gem --ignore-dependencies - 验证:
irb require 'psych' # 无报错则说明安装成功
2. 补全依赖后重新编译Ruby
若手动安装无效,大概率是编译Ruby时缺少libyaml依赖:
- 卸载现有Ruby版本:
rvm remove 3.3.5 - 安装系统依赖(Debian/Ubuntu):
(CentOS/RHEL替换为sudo apt-get install libyaml-devsudo yum install libyaml-devel) - 重新安装Ruby并指定依赖路径:
rvm install 3.3.5 --with-libyaml-dir=/usr - 验证psych可用性:
ruby -r psych -e "puts Psych::VERSION"
3. 清理RVM缓存后重装
如果以上方法均无效,尝试清理缓存消除安装残留:
- 清理RVM所有缓存:
rvm cleanup all - 重新安装Ruby 3.3.5:
rvm install 3.3.5
验证修复
执行以下命令确认问题解决:
gem install bundler # 可正常完成安装 irb -r psych # 启动irb自动加载psych,无报错
内容的提问来源于stack exchange,提问作者gkeepa
相关产品推荐
相关产品推荐

