Rails应用Bundler版本不匹配求助:指定版本无法生效
问题描述
我的Rails应用Gemfile要求Bundler版本范围:
gem "bundler", ">= 2.2.17", "<= 2.2.30"
已执行gem install bundler:2.2.30 --default安装2.2.30版本,gem list bundler显示默认版本为2.2.30,但执行bundler version返回2.1.2版本。
which bundler结果为/Users/masroor/.rbenv/shims/bundler- 尝试
bundle _2.2.30_ install或启动Rails服务时,仍使用2.1.2版本并报错:
Bundler could not find compatible versions for gem "bundler":
In Gemfile:
bundler (>= 2.2.17, <= 2.2.30)
Current Bundler version:
bundler (2.1.2)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by runninggem install bundler?
Could not find gem 'bundler (>= 2.2.17, <= 2.2.30)' in any of the relevant sources:
the local ruby installation
gem env输出的安装路径中无2.1.2版本的Bundler gemspec,但系统中存在bundler-2.1.2相关文件,执行gem uninstall bundler:2.1.2提示未安装该版本。- 使用rbenv管理Ruby版本,当前Ruby版本为2.7.0p0。
解决步骤
- 刷新rbenv shims缓存,避免旧版本路径被缓存:
rbenv rehash - 确认当前使用的Ruby版本为2.7.0p0,防止版本切换导致gem环境不一致:
rbenv version # 若显示版本不符,执行以下命令切换(按需选local或global) rbenv local 2.7.0 # 或 rbenv global 2.7.0 - 彻底清理旧版本Bundler残留并重新安装:
- 定位2.1.2版本的文件目录:
find ~/.rbenv -name "bundler-2.1.2" - 删除找到的对应目录(例如
~/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/bundler-2.1.2) - 卸载所有Bundler版本:
gem uninstall bundler --all - 重新安装指定版本并设为默认:
gem install bundler:2.2.30 --default
- 定位2.1.2版本的文件目录:
- 验证Bundler版本:
bundler --version - 重新安装项目依赖:
bundle install
内容的提问来源于stack exchange,提问作者Masroor
相关产品推荐
相关产品推荐

