警告:Bundler的运行版本比创建锁定文件错误的版本旧



当我在开发/测试时,我在控制台中不断收到这个错误

Warning: the running version of Bundler (2.1.2) is older than the version that created the lockfile (2.1.4). We suggest you to upgrade to the version that created the lockfile by running `gem install bundler:2.1.4`.

它根本没有阻止我,而是让我很烦恼。我知道最简单的解决方案就是更新我的Gemfile.lock。

BUNDLED WITH
2.1.2

但我想永久解决这个问题。我尝试

gem uninstall bundler

然后

gem install bundler -v 2.1.4

它让我不断给出这个错误

Gem bundler-2.1.2 cannot be uninstalled because it is a default gem

当我尝试先安装2.1.4,然后删除bundler 2.1.2时,控制台会给我这个输出。

Gem bundler-2.1.2 cannot be uninstalled because it is a default gem
Successfully uninstalled bundler-2.1.4

这个问题有什么解决办法吗?提前感谢

根据Anne van Rossum,gem update --system为我解决了这个问题。

只需运行gem install bundler:2.1.4,不要担心ruby附带的旧版本,不应该使用它。

我修复了它!。如果您使用的是rvm,那么您必须转到您在该特定项目上使用的ruby版本(例如"rvm use 2.7.0"(,然后运行"gem update--system">

您需要执行以下操作,以确保使用的回购使用正确的Bundler默认版本。

  1. 您可以运行以下操作,但这可能会带来问题,因为当所有操作都更新时,它可能会破坏系统上的本地宝石

    gem update --system
    
  2. 以下方法是确保Bundler更新的一种更安全的方法

  • 获取您的gem环境并注意INSTALLATION_DIRECTORY
    gem environment
    
  • 然后运行以下操作
    cd <INSTALLATION DIRECTORY>/specifications/default
    rm bundler-<old_default_version>.gemspec
    gem install --default bundler -v <new_default_version>
    
  1. 如果您已经执行了2,但仍然不起作用,则运行
    gem install bundler:<new_default_version>
    
    确保您的本地回购使用正确的版本

另一个选项是更新到最新版本:

gem update bundler

除非使用旧版本有特定原因(例如,最新版本中有错误,或者它们不再兼容(,否则您可以按照警告消息安装特定版本:

警告:Bundler的运行版本(2.2.32(比创建锁定文件的版本(2.3.4(旧。我们建议您通过运行gem install bundler:2.3.4升级到创建锁定文件。

gem install bundler:2.3.4

在我的案例中,这是安装失败时显示的唯一错误消息。我浪费了很多时间试图修复它,但事实证明这只是一个警告,而不是阻止安装的实际错误

为了看到实际的错误消息,我不得不运行bundle install --verbose

Ruby附带了一组默认的gem<Bundler就是其中之一。Ruby附带的>bundler的默认版本很快就会过时。要更新您的标准宝石,请运行

gem update --system

有关更多信息,请参阅RubyGems命令参考。

如果您不想更新您的标准gem,您也可以在捆绑包(Gemfile.lock(的上下文中更新Bundler。这是可能的,因为Bundlerv1.14。

bundle update --bundler

Bundlerv2.3.5(2022年1月(以来,此警告的时间应已结束。它现在自动获取匹配的远程版本并安装它

Bundler 2.3.17 is running, but your lockfile was generated with 2.3.7. Installing Bundler 2.3.7 and restarting using that version.
Fetching gem metadata from https://rubygems.org/.
Fetching bundler 2.3.7
Installing bundler 2.3.7
…

我删除了gemfile.lock文件,然后再次绑定以构建新的依赖项。

https://github.com/rubygems/rubygems/issues/3202

最新更新