Rails: "Could not find bundler" (2.2.11) required by Gemfile.lock. (Gem::GemNotFoundException)
Ruby on-RailsRubyRakeBundlerRuby on-Rails Problem Overview
When I try to do bundler update
I get this error:
.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in
`to_specs': Could not find bundler (>= 0) amongst
[rake-0.8.7, rake-0.8.7, rubygems-update-1.8.4] (Gem::LoadError)
I'm new to Ruby, can someone tell me what would cause this? Rake 0.8.7 is installed.
Ruby on-Rails Solutions
Solution 1 - Ruby on-Rails
Make sure you're entering "bundle" update, if you have the bundler gem installed.
bundle update
If you don't have bundler installed, do gem install bundler
.
Solution 2 - Ruby on-Rails
I had this problem, then I did:
gem install bundler
then in your project folder do:
bundle install
and then you can run your project using:
bundle exec rails server
Solution 3 - Ruby on-Rails
I had the same problem. This worked for me:
-
run rvm/script/rvm and also add it to your .profile or .bash_profile as shown in https://rvm.io/rvm/install/
-
use bundle without sudo
Solution 4 - Ruby on-Rails
If You are using rvm, then try the following command:
rvmsudo gem install bundler
According to another question: https://stackoverflow.com/questions/6278047/could-not-find-rails-0-amongst-gemloaderror/6278502#6278502?newreg=e1dc5df8f816438dbe4aeecfc9821db8
Hope it helped, Cheers
Solution 5 - Ruby on-Rails
The command is bundle update
(there is no "r" in the "bundle").
To check if bundler is installed do : gem list bundler
or even which bundle
and the command will list either the bundler version or the path to it. If nothing is shown, then install bundler by typing gem install bundler
.
Solution 6 - Ruby on-Rails
I had the same problem .. something happened to my bash profile that wasn't setting up the RVM stuff correctly.
Make sure your bash profile has the following line:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.
Then I ran "source ~/.bash_profile" and that reloaded everything that was in my bash profile.
That seemed to fix it for me.
Solution 7 - Ruby on-Rails
According to this answer to a similar question, it should be enough:
rvmsudo gem install bundler.
Cheers
Solution 8 - Ruby on-Rails
If you're using rbenv
running rbenv rehash
can solve this after you've installed bundler
and are still getting the issue.
Solution 9 - Ruby on-Rails
You may have to do something like "rvm use 1.9.2" first so that you are using the correct ruby and gemset. You can check which ruby you are using by doing "which ruby"
Solution 10 - Ruby on-Rails
I got this after upgrading to ruby 2.1.0. My PATH
was set in my login script to include .gem/ruby/2.0.0/bin
. Updating the version number fixed it.
Solution 11 - Ruby on-Rails
The system might be running "rootless". Try to set the firmware nvram variable boot-args to "rootless=0". Try to run set of commands:
sudo nvram boot-args="rootless=0";
sudo reboot
After reboot completes, run:
sudo gem install bundler
Solution 12 - Ruby on-Rails
Can be related to https://github.com/bundler/bundler-features/issues/34 if you are running the command inside another bundle exec
. Try using Bundler.with_original_env
if that is the case.
Solution 13 - Ruby on-Rails
For anyone encountering this issue with Capistrano: capistrano isn't able to locate the bundler
. The reason might be that you installed bundler under some other gemset
where the Capistrano isn't even looking.
- List your gemsets.
> rvm gemset list
- Use a particular gemset.
> rvm use 'my_get_set'
- Install bundler under that gemset.
> gem install bundler
Then, try again with the deploy task.
Solution 14 - Ruby on-Rails
I resolved it by deleting Gemfile.lock
and gem install bundler:2.2.0
Solution 15 - Ruby on-Rails
I had this same concern when setup a new Bundler gem version (2.2.11
) on my machine.
I was getting the error below:
/home/username/.rbenv/versions/2.7.2/lib/ruby/2.7.0/rubygems.rb:277:in `find_spec_for_exe': Could not find 'bundler' (2.2.11) required by your /home/username/Projects/my_project/Gemfile.lock. (Gem::GemNotFoundException)
To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:2.2.11`
17: from /home/username/.rbenv/versions/2.7.2/bin/rspec:23:in `<main>'
16: from /home/username/.rbenv/versions/2.7.2/bin/rspec:23:in `load'
15: from /home/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/exe/rspec:4:in `<top (required)>'
14: from /home/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:45:in `invoke'
Here's how I achieved it:
First, I had already installed the Bundler gem 2.2.11
and made it the default gem:
gem install --default bundler -v 2.2.11
Next, I listed my Bundler versions:
gem list bundler
Finally, I updated my gems to use the newly installed Bundler:
gem update --system
That's all.
I hope this helps
Solution 16 - Ruby on-Rails
In my case I believe I had an old Ruby remaining on the system, not registered on rvm, and even if the path variables and gem list was okay, it would still use the old Ruby during deployments with Capistrano
And then I realized, the Ruby I had installed with rvm wasn't set to the default one. Running
rvm alias create default <rvm_registered_ruby>
Fixed it.
Solution 17 - Ruby on-Rails
Just in case, I had similar error with bundler 2.1.2 and solved it with:
sudo gem install bundler -v 1.17.3
If you have several bundler versions installed, then you can run specific version of bundle this way: bundle _1.17.3_ exec rspec
Though seems like later bundler versions are pretty buggy (had issues on 3 different projects on 2 operation systems), having one old bundler may work the best, at least this is what I have on my Ubuntu & MacOS
Latest bundler versions may override stable bundler -v 1.17.3. It can be not easy to remove latest bundler from system, here is what helped me:
- Remove default version from
gem env gempath
: https://stackoverflow.com/a/60550744/1751321 - Remove
rm bundler.rb && rm -rf bundler
folder from load paths:ruby -e 'puts $LOAD_PATH'
- Then reinstall stable
sudo gem install bundler -v 1.17.3
Script ruby fix_bundler.rb
require 'fileutils'
load_paths = `ruby -e 'puts $LOAD_PATH'`
load_paths.split.each do |path|
target = File.join path, "bundler.rb"
if File.exist?target
puts "Deleting #{target}"
File.delete target
end
target = File.join path, "bundler"
if File.directory? target
puts "Deleting #{target}"
FileUtils.rm_rf target
end
end
puts "✅ bundler fixed"