Thoughts grows up by feeding itself with its own words.

Run specific version of bundler

运行特定版本的 bundler

Ruby Little (Useless) Trick (Skill) series.

When you have two versions of bundler installed at the same time, say 2.0.1 and 1.17.2, by default bundle exec and other commands use the latest version of bundler; If you are maintaining an old program, then you may run into this magic problem due to the incompatibility of bundlers like this:

Bundler could not find compatible versions for gem "bundler".
    rails (= 5.0.3) was resolved to 5.0.3, which depends on
      bundler (>= 1.3.0, < 2.0)

  Current Bundler version.
    bundler (2.0.1)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?

In the case above, we can choose to upgrade rails 5.0.3 to 5.0.7, and similarly, 5.1.1 to 5.1.7, which is generally not destructive and can solve the problem very well.

What if you can't simply fix it by upgrading due to some dependencies? In this situation, you need to use a specific version of the bundler. And it works, too.

gem install bundler -v 1.17.2
bundle _1.17.2_ exec rspec

Add _version_ to the end of the bundle to use a specific version of bundler.

On a similar note, if you have multiple versions of rails installed and want to use a particular version to execute rails new, then something like this can be done:

rails _5.2.8_ new
< Back