Old Bundler gem version being used by Rails - ruby-on-rails

We recently moved to Rails 4. I have run 'bundle update' (after removing the Gemfile.lock files). I have run into the below problem:
rails s
stops giving the following error message:
Bundler could not find compatible versions for gem "bundler":
In Gemfile:
ryp depends on
bundler (< 2.0, >= 1.3.0)
Current Bundler version:
bundler (1.0.15)
But I have checked that the bundler version is 1.3.5 as follows:
bundle version
Bundler version 1.3.5
And tried to uninstall 1.0.15 version as follows:
gem uninstall bundler --version 1.0.15
which results in this message:
INFO: gem "bundler" is not installed
How can I fix the above problem ?

If you're using gemsets, something that's worked for me in the past is uninstalling the version of bundler that is in your global gemset:
rvm gemset use global
gem uninstall bundler
Then switch back to whatever gemset your project uses.

Related

bundler version issue in rails 4?

I am getting this bundler error how do i resolve it.
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Bundler could not find compatible versions for gem "bundler":
In Gemfile:
rails (= 4.2.11.3) was resolved to 4.2.11.3, which depends on
bundler (>= 1.3.0, < 2.0)
Current Bundler version:
bundler (2.3.12)
Your bundle requires a different version of Bundler than the one you're running.
Install the necessary version with `gem install bundler:2.0.0.pre.3` and rerun bundler using `bundle _2.0.0.pre.3_`
What do gem install bundler:2.0.0.pre.3 and bundle _2.0.0.pre.3_ command gonna do. Are they gonna replace my 2.3.12 and install 2.0.0
There can be multiple versions of the same gem installed in your gemset. Run this:
gem install bundler:2.0.0.pre.3
and then run this:
gem info bundler
you will find two versions of the gem installed. By default, it will run bundle with the latest version but as your gems are not compatible with it you can run bundle with a different version of the gem. To do that you need to run:
bundle _version_
in your case it will be:
bundle _2.0.0.pre.3_
You can also remove the other versions of the bundler gem and just keep the one that is compatible. To remove a specific version you could do:
gem uninstall bundler:2.3.12

Bundle install could not find compatible versions for gem "bundler"

When I type bundle install I got this error. I tried to find solution but nothing solve my case. Please help me.
Bundler could not find compatible versions for gem "bundler":
In Gemfile:
rails (= 4.1.8) was resolved to 4.1.8, which depends on
bundler (< 2.0, >= 1.3.0)
Current Bundler version:
bundler (2.0.1)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
Could not find gem 'bundler (< 2.0, >= 1.3.0)', which is required by gem 'rails
(= 4.1.8)', in any of the sources.
Bundler could not find compatible versions for gem "rails":
In Gemfile:
rails (= 4.1.8)
animate-rails was resolved to 1.0.10, which depends on
rails
Try to use
gem install bundler -v 1.17.3
bundle _1.17.3_ install
Your bundler gem is too big. You can downgrade for now by changing your gemfile to specify the lower version, and deleting the lock file again.
gem 'bundler', '1.17.1'
Then try these commands in the terminal
gem install bundler -v 1.17.1
gem uninstall bundler -v 2.0.1
bundle update --bundler
bundle install
That last install command might be redundant. I'm on my phone so I can't test anything unfortunately.
Best of luck!
EDIT:
This is now a Heroku issue. Got it. Heroku docs regarding Bundler
Libraries
The following libraries are used by the platform for managing and running >Ruby applications and cannot be specified. For application dependency resolution and management, bundler is installed based on the contents of your Gemfile.lock. If you have a BUNDLED WITH in your Gemfile.lock then you will receive a different version of Bundler:
Applications specifying Bundler 2.x in their Gemfile.lock will receive bundler: 2.0.1
Applications specifying Bundler 1.x in their Gemfile.lock will receive bundler: 1.15.2
Applications with no BUNDLED WITH in their Gemfile.lock will default to bundler: 1.15.2
For more information on available settings see Bundler configuration. For more information on why we only support a specific set of bundler versions, please see this article about your Bundler version.
So it seems like Heroku only allows certain versions of Bundler to be compatible, relevant doc is linked. Downgrade to 1.15.2 and give it another shot.
You don't need to uninstall the newest version of bundler (especially if you have other applications).
First find the bundler version that you need.
For example, after running bundle install:
Could not find gem 'bundler (>= 1.3.0, < 2.0)', which is required by gem 'rails (~> 4.2)', in any of the sources.
I need any version between 1.3.0 and 2.0. Hence, I would go for bundler 1.9.
Then, install the bundler:
gem install bundler -v 1.9
Run that bundler version to install gems:
bundler _1.9_ install

Can't downgrade bundler

I try to install a project I cloned. When I do 'bundle install' I have the following message:
$ bundle install
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.6.2)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
So i did the following:
gem uninstall bundler
gem install bundler --version '1.0.0'
Successfully installed bundler-1.0.0
1 gem installed
I do 'bundle install', and I keep having the same message:
$ bundle install
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.6.2)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
It seems that I cannot downgrade bundler to the '1.0.0' version, any idea?
If you do not need multiple versions of Bundler, you can uninstall the newer version:
$ gem uninstall bundler -v 1.6.2
You can also choose from a list of bundler versions if you have more than one:
$ gem uninstall bundler
You'll need to hit the global instance (alter installed ruby version as needed) --
$ gem uninstall -i /Users/<user>/.rvm/gems/ruby-2.3.8#global bundler

Problems with bundle (Rails)

I'm running Ruby 1.9.3 and Rails 4.0.0, and I'm just starting to learn how to use Ruby on Rails. Whenever I type the command to create a project:
rails new blog
I get this error when the bundle tries to execute the "bundle install" command:
Bundler could not find compatible versions for gem "bundler":
In Gemfile:
rails (= 4.0.0) ruby depends on
bundler (< 2.0, >= 1.3.0) ruby
Current Bundler version:
bundler (1.2.3)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
But with the command:
gem list bundle
returns:
bundler (1.3.5, 1.2.3)
And the command:
bundle -v
returns:
Bundler version 1.3.5
I don't know why that's happening, I appreciate any help, thanks.
Try removing the version in your Gemfile. Just keep
gem 'bundler'
Now run
bundle update
Try check Gemfile.lock for used bundler version.
You also can try to uninstall old version:
gem uninstall bundler --version 1.2.3
You can also specify the version of bundler you want to use
bundle _1.3.5_ install

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?
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
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
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"
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.
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.

Resources