Установлен Bundler 2.0.1, Rails говорит, что "должен использовать Bundler 2 или выше"?

Я новичок в Rails, который пробовал Rails на капле DigitalOcean. Установки, казалось, работали нормально, но я получаю любопытное сообщение об ошибке, когда пытаюсь создать скаффолд:

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)

Т.е. текущим гемом Bundler является версия 2.0.1, но Rails все еще считает его недостаточным.

Я не могу найти ничего подобного в Интернете. Единственный красный флажок, который я вижу, это то, что гем компоновщика показывает версию по умолчанию 1.17.2. Как мне начать диагностировать проблему?

Ответы

Ответ 1

Я столкнулся с той же проблемой и решил ее путем понижения с помощью gem uninstall bundler, а затем gem install bundler -v 1.17.3 чтобы вернуться к последней версии pre 2.

Я видел это на трех отдельных системах с использованием разных менеджеров версий (ASDF, rbenv, rvm), и это решило проблему.

Существует некоторая информация о получении обе версии, чтобы играть хорошо здесь. Основной причиной этой проблемы, возможно, была ошибка (которая, похоже, с тех пор исправлена)

В соответствии с комментарием @MatijsvanZuijlen, приведенным ниже, и документацией к сборщику, вы также сможете указать, какую версию сборщика вы хотите использовать во время выполнения с bundle _1.17.3_ install

Ответ 2

Это помогло мне: gem update --system

Ответ 3

Я только что столкнулся с этой проблемой, пытаясь подтолкнуть меня к проекту Heroku. Нашел ответ в другом вопросе, и он работал для меня: Вы должны использовать Bundler 2 или выше с этим файлом блокировки

запустить: heroku buildpacks:set https://github.com/bundler/heroku-buildpack-bundler2

Затем попробуйте снова.

Ответ 4

Это мое решение:

  1. (если у вас старая версия Bundler), выполните команду:

    bundle update --bundler

  2. Запустите команду:

    gem update --system

  3. запустить грабли

    rake db:migrate

Ответ 5

После того, как вы попробуете любое из решений выше, перезапустите окно вашего терминала.

Я застрял с моим терминалом, показывая 2 версии упаковщика, даже когда я удалял старую версию, пока я не убил терминал и не открыл новое окно.

Ответ 6

У меня проблема после обновления версии ruby (2.4.6) as-

Вы должны использовать Bundler 2 или выше с этим файлом блокировки.

Вот как я решил it-
Когда я проверял версию bundler -v

$ Bundler version 1.16.1  

Я обновил версию пакета using-

$ gem install bundler -v 2.0.1

И проблема решена!