Вы должны использовать Bundler 2 или выше с этим файлом блокировки - PullRequest
0 голосов
/ 09 ноября 2018

Я работаю с 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: 

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

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

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

Ответы [ 10 ]

0 голосов
/ 20 июля 2019

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

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

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

gem list bundler

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

Здесь будут отображаться версии пакета, установленного локально

bundler (2.0.2, default: 1.17.2)

если у вас не установлена ​​версия 2 комплекта, запустите

gem install bundler

OR

gem install bundler -v 2.0.2

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

gem update --system

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

bundler update --bundler

Вот и все.

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

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

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

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

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

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

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

Итак, это было мое решение:

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

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

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

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

веселит.

0 голосов
/ 04 марта 2019

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

0 голосов
/ 05 марта 2019

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

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

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

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

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

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

0 голосов
/ 28 декабря 2018

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

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

0 голосов
/ 04 декабря 2018

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

0 голосов
/ 02 декабря 2018

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

0 голосов
/ 09 ноября 2018

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

...