質問: このロックファイルにはbundler 2以降を使用する必要があります 私は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です どうしたらいいかわかりません。バンドルをアンインストールしてからもう一度インストールしてみました。gemfile.lockを消去して、もう一度bundleと入力しました
回答: herokuはbundler 2.0ではなく、1.15.2をtracelogのヒントとして使用します。私の知る限り、「回避策」は、独自のビルドパックを作成するか、独自に単純なフォークを作成することです。 エディターでlib/language_pack/ruby.rbを開き、次の行を変更します。 bundler_version = "1.11.2" (readme.md https://github.com/heroku/heroku-buildpack-ruby )update:ruby 2.6.1およびbundler 2.0.1以降、herokuはbundler 2.0.1をサポートするようになりました。 https://devcenter.heroku.com/articles/bundler-version#known-upgrade-issues @schneemsがコメントで述べているように、これはruby 2.6.0の場合ではありません。これはbinstubsから誤って呼び出されるためです。彼はこれを ruby bug#15622 として親切に報告しました。