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

Я работаю с герокой, и каждый раз, когда я пытаюсь нажать мое приложение, это сообщение показывает:

remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Ruby app detected
remote: 
remote:  !
remote:  !     You must use Bundler 2 or greater with this lockfile.
remote:  !
remote: /tmp/d20181109-104-g861yi/bundler-1.15.2/gems/bundler-1.15.2/lib/bundler/lockfile_parser.rb:108:in 'warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
remote:     from /tmp/d20181109-104-g861yi/bundler-1.15.2/gems/bundler-1.15.2/lib/bundler/lockfile_parser.rb:95:in 'initialize'
remote:     from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:130:in 'new'
remote:     from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:130:in 'block in parse_gemfile_lock'
remote:     from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:18:in 'block (2 levels) in instrument'
remote:     from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:40:in 'yield_with_block_depth'
remote:     from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:17:in 'block in instrument'
remote:     from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/vendor/ruby/heroku-18/lib/ruby/2.5.0/benchmark.rb:308:in 'realtime'
remote:     from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:16:in 'instrument'
remote:     from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:86:in 'instrument'
remote:  !     Push rejected, failed to compile Ruby app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !   Push rejected to my-proyect-1234.
remote: 

В нем говорится: "Пульт:! Вы должны использовать Bundler 2 или больше с этим файлом блокировки. '

Но моя версия Bundler 2.0.0.pre.1

Не знаю, что делать, я попытался удалить пакет и установить его снова, я errased в Gemfile.lock и набрав bundle снова

Ответ 1

Я удалил проект и сделал клон git из приложения Heroku, не знаю, является ли это хорошим решением, но это сработало для меня.

Ответ 2

Немного опоздал на вечеринку, но сегодня я столкнулся и с этим, и это решение избавляет от необходимости удалять Bundler: просто запустите

heroku buildpacks:set https://github.com/bundler/heroku-buildpack-bundler2

согласно обсуждению проблемы Bundler здесь.

Ответ 3

У меня была такая же проблема на локальной машине (разработка) as-

Вы должны использовать Bundler 2 или выше с этим файлом блокировки.
Проблема была с gemfile.lock, потому что моя локальная версия пакета и версия пакета проекта не совпадали! Вот solution-

  1. Я удалил gemfile.lock
  2. Запустите команду - bundle install
    Это решило мою проблему, это гладко! Надежда будет работать на других!

Ответ 4

У меня был похожий опыт.

Вот как я это решил

Отобразите список всех ваших локальных драгоценных камней для комплекта драгоценных камней

gem list bundler

N/B: команда выше для менеджера версий rbenv, команда для rvm может отличаться

При этом отобразятся версии пакета, установленного локально.

bundler (2.0.2, default: 1.17.2)

если у вас нет установленной версии 2, то запустите

gem install bundler

ИЛИ

gem install bundler -v 2.0.2

если у вас уже установлен пакет 2, установленный локально, или вы только что установили его, то вам нужно просто установить обновление для менеджера пакетов RubyGems локально. Для этого запустите

gem update --system

А потом, наконец, запустить

bundle update --bundler

Это все.

Надеюсь, это поможет.

Ответ 5

Да, так что, в общем, удаление вашей версии bundler, удаление gemfile.lock и, наконец, запуск gem install bundler -v 1.15.2 (который использует версию heroku) сработали.

После этого работает git push heroku master работает!

Ответ 6

Я решил эту проблему, запустив gem uninstall bundler uninstall gem uninstall bundler для удаления 2.0.0.pre.1, переименовал файл Gemfile.lock (чтобы удалить его из использования), а затем выполнил bundle install для переустановки gemfiles. В моем случае у меня уже был доступ к более ранней версии пакета, установленной heroku (поэтому, когда я запускал gem uninstall, мне показали все доступные версии и решили удалить 2.0.0.pre.1).

Ответ 7

Даже при наличии в системе пакета 2 эта ошибка по-прежнему возникает при развертывании приложения с Ruby 2.6, поскольку Ruby 2.6 поставляется с версией пакета по умолчанию.

Если вы используете Ruby 2.6, обновитесь до Ruby 2.6.1, чтобы избежать этой проблемы.

Ответ 8

Для локальной системы

gem install bundler:2.0.0.pre.1
bundle _2.0.0.pre.1_ install

Где "2.0.0.pre.1" - это версия, с которой вам нужно связываться.

Не удаляйте ваш Gemfile.lock для этого, там по причине.

Ответ 9

Heroku не использует Bundler 2.0, но 1.15.2, как указывает tracelog.

Насколько я знаю, "обходной путь" заключается в создании собственного buildpack-пакета или простого собственного форка:

Откройте lib/language_pack/ruby.rb в вашем редакторе и измените следующую строку:

BUNDLER_VERSION = "1.11.2"

(README.md по адресу https://github.com/heroku/heroku-buildpack-ruby)

Обновление: Начиная с Ruby 2.6.1 и Bundler 2.0.1, Heroku теперь поддерживает Bundler 2.0.1. https://devcenter.heroku.com/articles/bundler-version#known-upgrade-issues

Это не относится к Ruby 2.6.0, так как это неправильно вызывается из binstubs, как упомянуто в комментарии @Schneems. Он любезно сообщил об этом как Ruby Bug # 15622

Ответ 10

У меня такая же проблема для Ruby 2.6.3, ничто из перечисленного в ответах не могло помочь. У меня работало только следующее решение:

  1. bundle update rails

  2. Удалить Gemfile.lock

  3. bundle

Ответ 11

запустите эту команду и нажмите код на герою

heroku buildpacks:set https://github.com/bundler/heroku-buildpack-bundler2

Ответ 12

Я получил ту же проблему в моей локальной системе, моя версия ruby была низкой, из-за которой произошла ошибка. Исправлено путем переключения на обновленные версии ruby.

Ответ 13

Обнаружил нечто похожее на проект рельсов.

попробовал следующее:

gem install --system
gem install bundler
bundle install

Возможно, на локальном компьютере нет совместимой версии пакета (до версии 2.xx), которая помечает ошибку.

Ответ 14

Для людей , которые не используют Heroku:

Я перепробовал все, и я все еще получал эту ошибку. даже эта ссылка мне не помогла: https://github.com/jekyll/jekyll/issues/7463

Так что это было мое решение:

Вставьте ваш код на GitHub. Удалите папку проекта, создайте новую папку и вытащите ваш код. Обновление bundler --bundler не помогло мне в конце, и я не использовал его.

Еще одна важная вещь: я обновил свою версию ruby, но я получал эту ошибку, потому что моя версия по умолчанию RVM была старой версией. даже если вы используете rvm use VERSION_NUMBER -- default это не поможет, потому что, как только вы выйдете из терминала, версия по умолчанию изменится на старую, и у вас возникнет та же проблема.

Для этого вы можете использовать этот ответ: Как установить версию Ruby по умолчанию с RVM?

или просто удалите старую версию ruby с помощью rvm uninstall XXX и установите новую rvm install XXX с помощью rvm install XXX и установите ее по умолчанию, rvm use --default XXX.

веселит.

Ответ 15

Попробуйте gem install bundler, затем попробуйте снова.

Ответ 16

Я была такая же проблема. В моем Gemfile.lock я видел в конце "в комплекте с bundler 2.0.2", но запуск bundle --version дал мне version 1.17... Для меня это решило просто обновить мой пакет с помощью следующей команды: bundle update --bundler см. Документацию по пакету

Ответ 17

Попробуйте это, если все еще есть проблема.

gem update --system