Установлен 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
Это мое решение:
-
(если у вас старая версия Bundler), выполните команду:
bundle update --bundler
-
Запустите команду:
gem update --system
-
запустить грабли
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
И проблема решена!