Установлен Bundler 2.0.1, Rails говорит, что «должен использовать Bundler 2 или выше»? - PullRequest
0 голосов
/ 06 января 2019

Я новичок в 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. Как мне начать диагностировать проблему?

Ответы [ 5 ]

0 голосов
/ 12 июня 2019

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

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

0 голосов
/ 11 июня 2019

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

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

    bundle update --bundler

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

    gem update --system

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

    rake db:migrate

0 голосов
/ 26 февраля 2019

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

0 голосов
/ 06 апреля 2019

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

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

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

$ Bundler version 1.16.1  

Я обновил версию пакета, используя-

$ gem install bundler -v 2.0.1

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

0 голосов
/ 07 января 2019

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

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

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

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

...