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

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 running gem 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残留并重新安装:
    1. 定位2.1.2版本的文件目录:
      find ~/.rbenv -name "bundler-2.1.2"
      
    2. 删除找到的对应目录(例如~/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/bundler-2.1.2)
    3. 卸载所有Bundler版本:
      gem uninstall bundler --all
      
    4. 重新安装指定版本并设为默认:
      gem install bundler:2.2.30 --default
      
  • 验证Bundler版本:
    bundler --version
    
  • 重新安装项目依赖:
    bundle install
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:31:05