ruby gem list如何显示一个gem的多个default版本?

vaj7vani  于 2022-11-22  发布在  Ruby
关注(0)|答案(1)|浏览(237)

当我运行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
谢谢你的帮助!

z2acfund

z2acfund1#

删除重复的默认版本

gem environment

您将找到安装目录:

INSTALLATION DIRECTORY: /home/seb/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0

在/specifications/default中,您将找到.gemspec文件,您将删除重复的文件

rm bundler-2.2.31.gemspec

要验证:gem list bundler

(2.2.31, 2.2.29, default: 2.2.15)

您可以使用gem install bundler:2.3.18 --default更新默认版本,但Bundler似乎使用了符合其需求的任意版本。如果您希望使用特定版本来捆绑Gemfile,请将其添加到您的Gemfile中
gem "bundler", "~> 2.3"
它将出现在gem文件的末尾。lock
BUNDLED WITH 2.3.18

相关问题