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

为何`gem list`显示多个Bundler默认版本?如何设置默认版本

Bundler多默认版本问题:原因与解决方法

为什么会出现两个默认版本?

  • Ruby安装包自带了一个bundler版本(比如你这里的2.1.4),属于Ruby核心依赖的一部分,因此会被标记为default。
  • 之后通过gem install bundler手动安装了新版本(2.3.22),但Ruby自带的旧版本不会被自动替换或删除,导致两个版本都显示为默认。
  • CI机器可能之前执行过安装旧版本的操作,或者Ruby版本更新后旧bundler残留,同时又安装了新版本,最终出现双默认的情况。

如何更新默认版本,永久解决冲突?

方法1:卸载旧的默认版本

直接卸载旧版本,让新版本成为唯一默认:

gem uninstall bundler -v 2.1.4

执行后再运行gem list bundler,就只会显示2.3.22为默认版本。

方法2:设置全局默认bundler版本

如果不想卸载旧版本,可以通过bundler命令指定全局默认版本:

# 先确保新版本已安装
gem install bundler -v 2.3.22
# 设置全局默认版本
bundle config set --global bundler.version 2.3.22

之后所有项目默认会使用2.3.22,除非项目Gemfile.lock指定了更严格的版本限制。

方法3:在CI脚本中强制指定版本

在CI运行脚本的开头添加以下命令,确保每次构建都使用目标版本:

gem update bundler
bundle install --bundler 2.3.22

这样可以直接覆盖项目中旧的bundler激活逻辑,彻底避免版本冲突警告。

补充:更新项目的Gemfile.lock记录

如果希望项目本身默认使用新版本,重新生成Gemfile.lock即可:

bundle update --bundler

这会把Gemfile.lock中的bundler版本更新为当前使用的2.3.22,后续CI运行时会自动激活这个版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:20:33