【问题标题】:Warning: the running version of Bundler is older than the version that created the lockfile error警告:Bundler 的运行版本比创建锁文件错误的版本旧
【发布时间】:2020-06-23 04:42:48
【问题描述】:

在开发/测试时,我的控制台中不断出现此错误

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

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

【问题讨论】:

  • 你试过gem install bundler 应该安装最后一个Bundler 版本吗?
  • 仍然报同样的错误。但是当我用 Rails 5.2 项目尝试我的步骤时,它正在工作。可能是 Rails 6 的问题?
  • 我必须运行gem update --system

标签: ruby-on-rails bundler ruby-on-rails-6


【解决方案1】:

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

【讨论】:

  • 重新启动控制台后,它的工作原理与您所说的完全一样。谢谢!
  • 仍然得到同样的错误。这就是我所做的,但仍然得到错误。我已经尝试登录和退出控制台并重新启动 Ubuntu。刚刚在 ruby​​ 2.7.0 中安装了 rails 6.0.2。还尝试升级到 Ubuntu 18.04,希望万岁。
  • 在运行之前尝试删除您的 Gemfile.lock。它将使用选定的捆绑器创建新的
  • 她有同样的问题,rm Gemfile.lock && bundle update && rails s 仍然会显示同样的错误。 @SemihArslanoğlu 还有其他建议吗?
【解决方案2】:

根据 Anne van Rossum, 宝石更新--系统 为我解决了这个问题。

【讨论】:

  • 这是做什么的,为什么会这样?
  • 在我运行gem update --system 之后,我发现了以下与捆绑程序相关的错误修复:## 错误修复:* 在gem update --system 之后修复损坏的bundler 可执行文件。拉取请求 #4221 由 deivid-rodriguez * 修复捆绑程序的并行安装程序上的竞争条件。由 David Rodríguez 提出的拉取请求 #3440。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    1. 您可以运行以下命令,但这可能会出现问题,因为它会破坏您系统上的本地 gem,因为它们都已更新。

      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>
      
      以确保您的本地仓库使用正确的版本

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-24
        • 1970-01-01
        • 2017-04-14
        • 1970-01-01
        • 2015-07-11
        • 2021-09-29
        • 1970-01-01
        • 2018-02-10
        相关资源
        最近更新 更多