问题
I'm working with heroku and every time I try to push my app this message shows out:
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:
It says 'remote: ! You must use Bundler 2 or greater with this lockfile.'
But my Bundler version is 2.0.0.pre.1
Don't know what to do, I tried uninstalling bundle and installing it again, I errased the Gemfile.lock and typing bundle
again
回答1:
A bit late to the party but I just ran into this today as well, and this solution avoids having to uninstall Bundler: just run
heroku buildpacks:set https://github.com/bundler/heroku-buildpack-bundler2
as per discussion on the Bundler issue here.
回答2:
I had a similar experience.
Here's how I solved it
Display a list of all your local gems for the bundler gem
gem list bundler
N/B: The command above is for rbenv version manager, the one for rvm might be different
This will display the versions of the bundler gem installed locally
bundler (2.0.2, default: 1.17.2)
if you don't have bundler version 2 installed locally, then run
gem install bundler
OR
gem install bundler -v 2.0.2
if you have bundler version 2 already installed locally or just installed it, then you need to simply install an update for RubyGems Package Manager locally. To do this, run
gem update --system
And then finally run
bundle update --bundler
That's all.
I hope this helps.
回答3:
I had same issue on Local Machine(Development) as-
You must use Bundler 2 or greater with this lockfile.
The issue was with gemfile.lock because my local bundle version and project bundle version was not matching!
Here is solution-
- I deleted gemfile.lock
- Run the command -
bundle install
That solved my problem, it is smooth! Hope will work for others!
回答4:
Yup, so generally uninstalling your version of bundler, removing the gemfile.lock, and finally running gem install bundler -v 1.15.2
(which is the version heroku is using) worked.
After that running git push heroku master
worked!
回答5:
Even with bundler 2 on the system this error still happens when deploying an app with Ruby 2.6 since Ruby 2.6 ships with a default version of bundler.
If you are using Ruby 2.6 then upgrade to Ruby 2.6.1 to avoid this issue.
回答6:
I resolved this issue by running gem uninstall bundler
to remove 2.0.0.pre.1, renamed the Gemfile.lock file (to remove it from use) and then ran bundle install
to reinstall the gemfiles. In my case, I already had access to the earlier bundler version installed by heroku (so when I ran gem uninstall
, I was shown all versions available and chose to remove 2.0.0.pre.1).
回答7:
For local system
gem install bundler:2.0.0.pre.1
bundle _2.0.0.pre.1_ install
Where "2.0.0.pre.1" is whatever version you need to bundle with.
Don't delete your Gemfile.lock for this, it's there for a reason.
回答8:
Heroku does not use Bundler 2.0, but 1.15.2, as the tracelog hints.
As far as I am aware, the "workaround" is to create your own buildpack, or simple fork their own:
Open lib/language_pack/ruby.rb in your editor, and change the following line:
BUNDLER_VERSION = "1.11.2"
(README.md at https://github.com/heroku/heroku-buildpack-ruby)
Update: As of Ruby 2.6.1 and Bundler 2.0.1, Heroku now does support Bundler 2.0.1. https://devcenter.heroku.com/articles/bundler-version#known-upgrade-issues
This is not the case for Ruby 2.6.0, as this is incorrectly invoked from binstubs, as @Schneems has mentioned in the comment. He has kindly reported this as a Ruby Bug #15622
回答9:
I got the same problem for Ruby 2.6.3, nothing listed in answers could help. The only the following solution worked for me:
bundle update rails
Remove Gemfile.lock
bundle
回答10:
I deleted the project and made a git clone from the Heroku app, don´t know if it is a good solution, but it worked for me.
回答11:
I got the same issue in my local system, my ruby version was low due to which the error was occurring. Fixed it by switching it to updated versions of ruby.
回答12:
For people who are not using Heroku:
I Tried everything and I was still receiving this error. even this link didn't help me: https://github.com/jekyll/jekyll/issues/7463
So this was my solution:
Push your code on GitHub. delete project folder create a new folder and pull your code bundle install That's it. bundler update --bundler was not helping me at the end and I didn't use it.
One more important thing:
I updated my ruby version but I was getting this error because my RVM default version was an old version.
even when you use rvm use VERSION_NUMBER -- default
will not help because as soon as you log out from terminal the default version will change to the old one and you will have the same issue.
For this you can use this answer: How to set default Ruby version with RVM?
or just uninstall old ruby version with rvm uninstall X.X.X
and install the new one with rvm install X.X.X
and make it default by rvm use --default X.X.X
.
cheers.
回答13:
I had the same issue. In my Gemfile.lock
i saw at the end "bundled with bundler 2.0.2", but running bundle --version
gave me version 1.17..
. For me it solved just updateing my bundler with the following command: bundle update --bundler
see bundler documentation
来源:https://stackoverflow.com/questions/53231667/bundler-you-must-use-bundler-2-or-greater-with-this-lockfile