Ответ 1
Я удалил проект и сделал клон git из приложения Heroku, не знаю, является ли это хорошим решением, но это сработало для меня.
Я работаю с герокой, и каждый раз, когда я пытаюсь нажать мое приложение, это сообщение показывает:
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
снова
Я удалил проект и сделал клон git из приложения Heroku, не знаю, является ли это хорошим решением, но это сработало для меня.
Немного опоздал на вечеринку, но сегодня я столкнулся и с этим, и это решение избавляет от необходимости удалять Bundler: просто запустите
heroku buildpacks:set https://github.com/bundler/heroku-buildpack-bundler2
согласно обсуждению проблемы Bundler здесь.
У меня была такая же проблема на локальной машине (разработка) as-
Вы должны использовать Bundler 2 или выше с этим файлом блокировки.
Проблема была с gemfile.lock, потому что моя локальная версия пакета и версия пакета проекта не совпадали! Вот solution-
bundle install
У меня был похожий опыт.
Вот как я это решил
Отобразите список всех ваших локальных драгоценных камней для комплекта драгоценных камней
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
Это все.
Надеюсь, это поможет.
Да, так что, в общем, удаление вашей версии bundler, удаление gemfile.lock и, наконец, запуск gem install bundler -v 1.15.2
(который использует версию heroku) сработали.
После этого работает git push heroku master
работает!
Я решил эту проблему, запустив 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).
Даже при наличии в системе пакета 2 эта ошибка по-прежнему возникает при развертывании приложения с Ruby 2.6, поскольку Ruby 2.6 поставляется с версией пакета по умолчанию.
Если вы используете Ruby 2.6, обновитесь до Ruby 2.6.1, чтобы избежать этой проблемы.
gem install bundler:2.0.0.pre.1
bundle _2.0.0.pre.1_ install
Где "2.0.0.pre.1" - это версия, с которой вам нужно связываться.
Не удаляйте ваш Gemfile.lock для этого, там по причине.
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
У меня такая же проблема для Ruby 2.6.3, ничто из перечисленного в ответах не могло помочь. У меня работало только следующее решение:
bundle update rails
Удалить Gemfile.lock
bundle
запустите эту команду и нажмите код на герою
heroku buildpacks:set https://github.com/bundler/heroku-buildpack-bundler2
Я получил ту же проблему в моей локальной системе, моя версия ruby была низкой, из-за которой произошла ошибка. Исправлено путем переключения на обновленные версии ruby.
Обнаружил нечто похожее на проект рельсов.
попробовал следующее:
gem install --system
gem install bundler
bundle install
Возможно, на локальном компьютере нет совместимой версии пакета (до версии 2.xx), которая помечает ошибку.
Для людей , которые не используют 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
.
веселит.
Попробуйте gem install bundler
, затем попробуйте снова.
Я была такая же проблема. В моем Gemfile.lock
я видел в конце "в комплекте с bundler 2.0.2", но запуск bundle --version
дал мне version 1.17..
. Для меня это решило просто обновить мой пакет с помощью следующей команды: bundle update --bundler
см. Документацию по пакету
Попробуйте это, если все еще есть проблема.
gem update --system