How to `bundle install` when your Gemfile requires an older version of bundler?

Ruby on-RailsRubyBundler

Ruby on-Rails Problem Overview


I am in an older Rails project that has a Gemfile. I tried to add a gem to the Gemfile and bundle install but got an error:

Bundler could not find compatible versions for gem "bundler":
  In Gemfile:
    rails (= 3.0.0) ruby depends on
      bundler (~> 1.0.0) ruby

  Current Bundler version:
    bundler (1.1.5)

This Gemfile requires a different version of Bundler.

The version of Rails it's using requires bundler ~>1.0.0 but I have 1.1.5 installed and am using it for my other projects. Usually I would use bundle exec ... but since this is bundler we are talking about, it's a little more complicated than that. How can I add a gem to my Gemfile and run bundle install while using the version of bundler that it requires?

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

First you need to install the appropriate version of bundler:

% gem install bundler -v '~> 1.0.0'
Successfully installed bundler-1.0.22

Then force rubygems to use the version you want (see this post):

% bundle _1.0.22_ install

Solution 2 - Ruby on-Rails

This is what I had to do to get it to work to install with a previous version (2.2.11) of bundler:

gem install bundler:2.2.11
bundle _2.2.11_ install

Solution 3 - Ruby on-Rails

I had the same issue on macOS Mojave. I installed the different version of the bundler gem and uninstall the current version.

gem install bundler -i '2.0.1'

gem uninstall bundler

Then gives me the option to choose the version to uninstall and I choose the one which is creating the problem.

Solution 4 - Ruby on-Rails

The error message In Gemfile: bundler (~> 1.16) is a bit inaccurate, since the version number requirement can come from other places, such as the .gemspec file, which was the case for me:

spec.add_development_dependency "bundler", "~> 1.16"

Removing the version number from the .gemspec file solved the issue for me:

spec.add_development_dependency "bundler"

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAndrewView Question on Stackoverflow
Solution 1 - Ruby on-Railsalexsanford1View Answer on Stackoverflow
Solution 2 - Ruby on-RailsKmeixnerView Answer on Stackoverflow
Solution 3 - Ruby on-RailsgsumkView Answer on Stackoverflow
Solution 4 - Ruby on-RailsAsbjørn UlsbergView Answer on Stackoverflow