Search code examples
ruby-on-railsrubybundler

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


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?


Solution

  • 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