当我运行gem list bundler
时,得到以下结果
+ gem list bundler
*** LOCAL GEMS ***
bundler (default: 2.3.22, default: 2.1.4)
- 两个 * 版本怎么可能被标记为默认版本?有没有办法更新默认版本?
上下文
我之所以最终调查哪个是默认的Bundler版本,是因为我在一个自我管理的CI机器上断断续续地遇到了这个警告:
Gem::LoadError: You have already activated bundler 2.3.22 [or whichever latest version is available], but your Gemfile requires bundler 2.1.4.
我查看了我的Gemfile.lock
,它需要bundler
,如下所示:
bundler (>= 1.12.0, < 3.0.0)
所以我猜在某个时候,Bundler激活了(我相信这意味着选择运行时使用)版本2.1.4
,因为这是默认可用的版本。
我希望能够通过强制bundler的最新版本成为运行时使用的版本来永远防止这种错误,但我不知道如何实现。
也就是说,如何才能使gem list bundler
输出不显示default: 2.1.4
?
谢谢你的帮助!
1条答案
按热度按时间z2acfund1#
删除重复的默认版本
您将找到安装目录:
在/specifications/default中,您将找到.gemspec文件,您将删除重复的文件
要验证:
gem list bundler
您可以使用
gem install bundler:2.3.18 --default
更新默认版本,但Bundler似乎使用了符合其需求的任意版本。如果您希望使用特定版本来捆绑Gemfile,请将其添加到您的Gemfile中gem "bundler", "~> 2.3"
它将出现在gem文件的末尾。lock
BUNDLED WITH 2.3.18