How to `bundle install` when your Gemfile requires an older version of bundler?
Ruby on-RailsRubyBundlerRuby 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"