使用bundler安装更新版本的bundler

And*_*imm 28 ruby bundler

如果我更改了Gemfile中所需的bundler版本,然后输入bundle,我就知道了

Bundler could not find compatible versions for gem "bundler":
  In Gemfile:
    bundler (>= 1.10.2) ruby

  Current Bundler version:
    bundler (1.9.9)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
Could not find gem 'bundler (>= 1.10.2) ruby in any of the sources
Run Code Online (Sandbox Code Playgroud)

是否可以要求bundler安装新版本的bundler,而不是输入gem install bundler

osm*_*man 38

似乎捆绑不能捆绑自己:)

所以你必须跑步gem install bundler.

  • `bundle update --bundler` 似乎更新了 Gemfile.lock 文件中引用的版本,而不是升级实际的 Bundelr gem。 (9认同)
  • 现在,您只需运行“bundle update --bundler”并更新捆绑器 - https://bundler.io/v2.0/man/bundle-update.1.html#OPTIONS (2认同)
  • 这是正确的答案。别再看了。 (2认同)

dei*_*vid 14

从 Bundler 2.3(至少与 RubyGems 3.3 结合)开始,bundler 现在可以通过运行来完全升级自身

bundle update --bundler
Run Code Online (Sandbox Code Playgroud)

该命令已经存在很长时间了,但到目前为止,它仅将Gemfile.lock文件中的版本更新为系统上安装的最新版本。

现在,它可以完全升级您的应用程序以使用最新版本的 Bundler。

请注意,其他答案建议gem install bundler仅部分解决问题,因为如果您有一个Gemfile.lock文件锁定到某个旧版本并且它安装在您的系统上,即使您使用gem install bundler.

bundle update --bundler才是正确的方法!


ltr*_*npr 12

我想你可以跑gem update bundler,对吗?它对我有用.

  • 在此之后需要运行“bundle update --bundler”才能更新我的“Gemfile.lock”。 (3认同)
  • 如果您位于包含由捆绑器 2 捆绑的 Gemfile 的目录中,并且当前仅安装了捆绑器 1,则 `bundle update --bundler` 将不起作用。这在任何地方都适用,并且应该是正确的答案。 (2认同)

小智 9

从v1.14开始,现在有: bundle update --bundler

https://bundler.io/v2.0/man/bundle-update.1.html#OPTIONS

  • 这是不正确的,只有当您碰巧位于包含 Gemfile 的目录中时它才有效。 (4认同)
  • 具体来说,它将捆绑程序的“Gemfile.lock”版本更新为与您用来发出命令的版本相同。这不会更新捆绑程序本身。 (2认同)