You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用gem安装指定版本bundler提示成功却报错且项目调用版本不符

问题成因
  • 安装bundler 2.2.27时抛出的Errno::ENOENT错误说明安装流程不完整:虽然rubygems将该版本标记为默认gem,但对应的元数据、可执行文件没有正确写入RVM的用户gemset路径,仅在Ruby内置的默认gem路径留存了部分不完整的文件
  • RVM的gemset加载优先级规则:用户级gemset的可执行文件优先级高于Ruby内置默认gem的可执行文件,因此调用bundle命令时,系统优先加载了用户gemset里的2.1.4版本,而非标记为默认的2.2.27
  • Shell的可执行路径缓存未更新:安装新版本bundler后,shell仍保留了旧版本bundle命令的路径缓存,不会自动匹配新安装的可执行文件
解决方案
  1. 先清除shell的可执行路径缓存,执行命令:
hash -r

执行后验证当前bundler版本:

bundle -v

如果返回2.2.27则问题解决,否则执行后续步骤。

  1. 尝试指定版本调用bundler执行项目安装:
bundle _2.2.27_ install

如果可正常执行,说明仅可执行文件的默认调用优先级异常,可直接通过指定版本执行,或执行下一步彻底修复。

  1. 彻底卸载所有本地bundler版本后重装:
    首先卸载所有非2.2.27版本的bundler,出现删除可执行文件提示时选择「是」:
gem uninstall bundler -v '!= 2.2.27'

再强制卸载存在问题的2.2.27默认版本:

gem uninstall bundler -v 2.2.27 --force

之后重新安装指定版本并设为默认:

gem install bundler -v 2.2.27 --default

安装完成后再次清除shell缓存并验证版本:

hash -r && bundle -v

返回2.2.27即可正常执行项目依赖安装。

  1. 若以上操作后仍未解决,可重新加载RVM配置后再次验证:
source ~/.rvm/scripts/rvm
bundle -v

内容的提问来源于stack exchange,提问作者jedi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:36:00