Bundler 2.0.1 installed, Rails says “must use Bundler 2 or greater”?

╄→гoц情女王★ 提交于 2019-11-27 15:43:42

问题


I'm a Rails newb who's trying out Rails on a DigitalOcean droplet. The installations seemed to work fine, but I'm getting a curious error message when I try to generate a scaffold:

DO 10:48 Rails/simple (master) → rails generate scaffold User name:string email:string
Traceback (most recent call last):
        5: from bin/rails:3:in `<main>'
        4: from bin/rails:3:in `load'
        3: from /home/tony/rails/simple/bin/spring:10:in `<top (required)>'
        2: from /home/tony/rails/simple/bin/spring:10:in `new'
        1: from /home/tony/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/lockfile_parser.rb:95:in `initialize'
/home/tony/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/lockfile_parser.rb:108:in `warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
DO 10:49 Rails/simple (master) → bundle list bundler
/home/tony/.rvm/gems/ruby-2.6.0/gems/bundler-2.0.1
DO 10:50 Rails/simple (master) → gem list bundler

*** LOCAL GEMS ***

bundler (2.0.1, default: 1.17.2)
bundler-unload (1.0.2)
rubygems-bundler (1.4.5)

I.e., the current Bundler gem is version 2.0.1, but Rails still thinks it's insufficient.

I can't find anything similar on the web. The only red flag I can see is that the bundler gem shows a default version of 1.17.2. How do I begin to diagnose the problem?


回答1:


I ran into the same issue & resolved it by downgrading with gem uninstall bundler, followed by gem install bundler -v 1.17.3 to revert back to the last pre 2 version.

I saw this across 3 separate systems using different version managers (ASDF, rbenv, rvm) and this resolved the issue.

There is some information on getting both versions to play nicely here. The root cause of this issue may have been a bug (which appears to have since been fixed)

Per the comment from @MatijsvanZuijlen below, and the bundler documentation, you should also be able to specify which version of bundler you want to use at runtime with bundle _1.17.3_ install




回答2:


This helped me: gem update --system




回答3:


This is my solution:

  1. (if you have an old version of Bundler), run the command:

    bundle update --bundler

  2. Run the command:

    gem update --system

  3. run the rake

    rake db:migrate




回答4:


After you try any of the solutions above, restart your terminal window.

I was stuck with my terminal showing 2 versions of bundler even when i uninstalled the old version until i killed terminal and opened a new window.




回答5:


I got issue after updating ruby version(2.4.6) as-

You must use Bundler 2 or greater with this lockfile.

Here is how I resolved it-
When i checked bundler version bundler -v

$ Bundler version 1.16.1  

I updated bundlere version using-

$ gem install bundler -v 2.0.1

And got issue resolved!



来源:https://stackoverflow.com/questions/54063318/bundler-2-0-1-installed-rails-says-must-use-bundler-2-or-greater

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!