RVM环境下已安装bundler却提示未安装、执行bundle命令报错
问题解答
bundler实际安装路径
你使用--default参数安装的bundler属于Ruby默认gem,不会存储到常规用户gem的gems目录下,实际安装路径分为两部分:
- 代码文件存储在Ruby标准库路径:
/Users/jedrek/.rvm/rubies/ruby-2.7.4/lib/ruby/site_ruby/2.7.0/ - gem规格文件存储在默认gem规格目录:
/Users/jedrek/.rvm/rubies/ruby-2.7.4/lib/ruby/gems/2.7.0/specifications/default/
报错原因
该报错是RVM的可执行包装脚本与默认gem的路径规则不匹配导致的:
- 你执行
bundle命令时实际调用的是RVM生成的包装脚本/Users/jedrek/.rvm/gems/ruby-2.7.4/bin/bundle,该脚本硬编码了从常规用户gem目录/Users/jedrek/.rvm/rubies/ruby-2.7.4/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/exe/bundle加载执行文件 - 你将bundler安装为了默认gem,不存在于上述常规gem目录,因此触发LoadError。
修复方案
- 先卸载当前安装的默认bundler:
gem uninstall bundler -v 2.2.26
如果提示权限或文件占用问题,可追加--force参数强制卸载。
2. 重新安装不带--default参数的bundler:
gem install bundler -v 2.2.26
安装完成后bundler会被存储到常规gem目录,和RVM的包装脚本路径匹配。
3. 验证安装结果:
执行bundle -v,确认输出为Bundler version 2.2.26即修复完成。
内容的提问来源于stack exchange,提问作者jedi
相关产品推荐
相关产品推荐

