Bundler 2.0.1 已安装,Rails 说 "must use Bundler 2 or greater"?

Bundler 2.0.1 installed, Rails says "must use Bundler 2 or greater"?

我是 Rails 新手,正在尝试 Rails DigitalOcean droplet。安装似乎工作正常,但当我尝试生成脚手架时收到一条奇怪的错误消息:

DO 10:48 Rails/simple (master) → rails generate scaffold User name:string email:string
Traceback (most recent call last):
        5: from bin/rails:3:in `<main>'
        4: from bin/rails:3:in `load'
        3: from /home/tony/rails/simple/bin/spring:10:in `<top (required)>'
        2: from /home/tony/rails/simple/bin/spring:10:in `new'
        1: from /home/tony/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/lockfile_parser.rb:95:in `initialize'
/home/tony/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/lockfile_parser.rb:108:in `warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
DO 10:49 Rails/simple (master) → bundle list bundler
/home/tony/.rvm/gems/ruby-2.6.0/gems/bundler-2.0.1
DO 10:50 Rails/simple (master) → gem list bundler

*** LOCAL GEMS ***

bundler (2.0.1, default: 1.17.2)
bundler-unload (1.0.2)
rubygems-bundler (1.4.5)

也就是说,目前的Bundlergem是2.0.1版本,但是Rails还是觉得不够

我在网上找不到任何类似的东西。我能看到的唯一危险信号是捆绑器 gem 显示默认版本 1.17.2。我如何开始诊断问题?

我 运行 遇到了同样的问题并通过 gem uninstall bundler 降级解决了它,然后 gem install bundler -v 1.17.3 恢复到最后一个 pre 2 版本。

我在使用不同版本管理器(ASDF、rbenv、rvm)的 3 个独立系统中看​​到了这个问题,这解决了这个问题。

有一些关于让两个版本都能很好地播放的信息here。此问题的根本原因可能是错误(似乎已修复)

根据下面@MatijsvanZuijlen 的评论和捆绑器文档,您还应该能够指定要在运行时使用哪个版本的捆绑器 bundle _1.17.3_ install

这对我有帮助:gem update --system

更新 ruby 版本 (2.4.6) 后出现问题-

You must use Bundler 2 or greater with this lockfile.

我是这样解决的-
当我检查捆绑器版本 bundler -v

$ Bundler version 1.16.1  

我使用 -

更新了 bundlere 版本
$ gem install bundler -v 2.0.1

并解决了问题!

这是我的解决方案:

  1. (如果你有旧版本的 Bundler),运行 命令:

    bundle update --bundler

  2. 运行命令:

    gem update --system

  3. 运行耙子

    rake db:migrate

尝试上述任何解决方案后,重新启动终端 window。

即使我卸载了旧版本,我的终端仍然显示 2 个版本的捆绑器,直到我终止终端并打开一个新的 window。

我是这样解决的:

删除ruby并通过源码安装Ruby2.6.7,软link到/usr/bin/

wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.7.tar.gz
tar xvf ruby-2.6.7.tar.gz
./configure 
make -j32 && sudo make install
sudo ln -sf /usr/local/bin/ruby /usr/bin/ruby

然后,运行:

bundle install

然后,运行:

sudo bundle exec jekyll serve

对我有用。