99

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?

Andrew
  • 212,236
  • 189
  • 499
  • 691
  • I guess uninstall 1.1.5 bundler first. Then install 1.0.0. This will fix. Maybe there is a better solution? – halfelf Aug 23 '12 at 13:48

4 Answers4

193

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
Community
  • 1
  • 1
alexsanford1
  • 3,397
  • 1
  • 18
  • 23
  • Why the heck is this not in the Bundler docs?!? Thanks, after wasting more hours than I care to admit your answer finally explained what I needed. – MikeSchinkel May 13 '16 at 07:58
  • 3
    To go for an exact version these days you will want to use `gem install bundler -v '=1.16.0'` – Nick Schwaderer Apr 19 '18 at 10:22
  • 14
    Not working now. It cannot force rubygems to use the version which ```bundle _1.0.22_ install``` specified – Alec.Zhou Mar 23 '19 at 07:20
  • I just used this approach and it worked for me @Alec.Zhou . I have both `bundler 2.2.15` and `bundler 2.2.16` installed. – chriszo111 Apr 29 '21 at 11:05
4

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
Kmeixner
  • 1,544
  • 4
  • 20
  • 32
3

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.

gsumk
  • 749
  • 10
  • 15
  • Not necessarily a recommended way of doing this. I'd try the accepted answer first, you might have other gems depending on the later versions, and you can run them separately. – Michael Elliott Mar 08 '20 at 20:30
3

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"
Asbjørn Ulsberg
  • 8,501
  • 2
  • 42
  • 61