ruby-on-rails 警告:Bundler的运行版本比产生锁文件错误的版本旧

hec6srdp  于 2023-04-13  发布在  Ruby
关注(0)|答案(8)|浏览(309)

当我在开发/测试的时候,我的控制台总是出现这个错误

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

这个问题有什么解决办法吗?先谢谢了

qvk1mo1f

qvk1mo1f1#

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

h7appiyu

h7appiyu2#

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

cwdobuhd

cwdobuhd3#

如果你正在使用rvm,那么你必须转到你在那个特定项目上使用的ruby版本(例如'rvmuse2.7.0'),然后运行'gemupdate--system'

2wnc66cl

2wnc66cl4#

您需要执行以下操作,以确保正在使用的存储库使用了正确的Bundler默认版本。
1.您可以运行以下命令,但这可能会出现问题,因为它可能会破坏系统上的本地gem,因为所有gem都已更新。

gem update --system

1.以下方法是确保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>

以确保您的本地存储库使用正确的版本

ozxc1zmp

ozxc1zmp5#

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

gem update bundler

除非有使用旧版本的特定原因(例如,最新版本中存在错误,或者它们不再兼容),否则您可以按照警告消息仅安装该特定版本:
警告:Bundler的运行版本(2.2.32)比创建锁文件的版本(2.3.4)旧。我们建议您通过运行gem install bundler:2.3.4升级到创建锁文件的版本。

gem install bundler:2.3.4
tag5nh1u

tag5nh1u6#

在我的例子中,这是安装失败时显示的唯一错误消息。我浪费了很多时间试图修复它,但结果是这只是一个警告,而不是阻止安装的实际错误。
要查看实际的错误消息,我必须运行bundle install --verbose

wbgh16ku

wbgh16ku7#

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

gem update --system

更多信息请参见RubyGems command reference
如果你不想更新你的标准gem,你也可以在你的bundle(Gemfile.lock)的上下文中更新 Bundler。这是可能的,因为 Bundler v1.14。

bundle update --bundler

此警告的时间应该超过since Bundler v2.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
…
voj3qocg

voj3qocg8#

我删除了gemfile.lock文件,然后再次绑定以构建新的依赖项。
https://github.com/rubygems/rubygems/issues/3202

相关问题