Reputation: 238707
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?
Upvotes: 122
Views: 99847
Reputation: 30595
I was tasked to work on a legacy project requiring Ruby 2.x-something.
I was using rbenv, which gives a n00b like me no hints about how to resolve this issue.
Here's how I eventually got past the error:
$ grep bundler Gemfile.lock
bundler (>= 1.3.0, < 2.0)
$ gem install bundler --version '>= 1.3.0, < 2.0'
Fetching: bundler-1.17.3.gem
...
$ bundle install
Inspecting the Gemfile.lock contents for the specific version of bundler
was what helped me.
Upvotes: 0
Reputation: 710
If you use rvm
to manage your ruby versions consider using gemsets for projects. This way you can install the specific version of bundler needed without having to specify the version each time.
You can confirm your gemset
is loaded by running rvm info
in your project directory.
Now you can install the version of bundler you'd like via gem install bundler -v '~> <VERSION>'
. The next time you need to use bundler just run bundle
.
Upvotes: 0
Reputation: 1752
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
Upvotes: 11
Reputation: 8820
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"
Upvotes: 4
Reputation: 891
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.
Upvotes: 3
Reputation: 3727
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
Upvotes: 223