Bundler: can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException) during bundle install with gem

Ruby on-RailsRubyRubygemsBundleBundler

Ruby on-Rails Problem Overview


I'm executing the following script:

gem install rdoc --no-document
gem install bundle
bundle

output:

+ gem install rdoc --no-document
Successfully installed rdoc-6.1.1
1 gem installed
+ gem install bundle
Successfully installed bundle-0.0.1
Parsing documentation for bundle-0.0.1
Done installing documentation for bundle after 2 seconds
1 gem installed
1 gem installed
+ bundle install
/usr/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
	from /usr/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
	from /srv/myuser/.gem/ruby/2.5.0/bin/bundle:23:in `<main>'

I've added /srv/myuser/.gem/ruby/2.5.0/bin to my path so I was able to install gems.

the gem env shows

RubyGems Environment:
  - RUBYGEMS VERSION: 2.7.7
  - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/2.5.0
  - USER INSTALLATION DIRECTORY: /srv/myuser/.gem/ruby/2.5.0
  - RUBY EXECUTABLE: /usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - SPEC CACHE DIRECTORY: /srv/myuser/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/2.5.0
     - /srv/myuser/.gem/ruby/2.5.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--user-install"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/bin

gem list shows the installed gems. I can also find bundle when I perform:

ls -ltrah /srv/myuser/.gem/ruby/2.5.0/bin

I've also tried to install bundler but that didn't also help. What am I doing wrong?

gem which bundle is showing nothing.gem spec bundle is showing it.

Update: I tried to install bundler before running bundle but the same issue appears while:

gem list bundle shows

bundle (0.0.1)
bundler (2.0.1)

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

Bundler version 2 introduced a new feature to automatically use the version of Bundler specified in the Gemfile.lock of your project. Thus, if you have an existing Gemfile.lock with a line like this at the bottom

BUNDLED WITH
   1.17.3

Bundler will try to run with a Bundler version < 2.0. Since you just have Bundler 2.0.1 (and Rubygems >= 2.7.0) installed, this fails with this rather unhelpful error message.

To fix this, you could

  • remove the lines from your Gemfile.lock and to use bundler 2.x everywhere from now on, or
  • install a bundler 1.x version with gem install bundler -v '< 2.0' to use the appropriate version as specified by your Gemfile.lock.

More information about this can be found on the Bundler blog.

Solution 2 - Ruby on-Rails

As per the description mentioned in the post , before running the below mentioned command:

bundle install

in the script, you need to run the below command:

gem install bundler

So, the sequence of commands to work would be:

gem install bundler
bundle install

Update the bundler command if if does not work to:

 gem install bundler -v '1.17.3'

Reason for the break in functionalities in bundler 2.0 is given in below mentioned link:

https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html

Solution 3 - Ruby on-Rails

I couldn’t even do bundle -v. This sorted it out:

gem update --system

Got the info from here (similar problem): https://stackoverflow.com/questions/47026174/find-spec-for-exe-cant-find-gem-bundler-0-a-gemgemnotfoundexception

Probably some version mismatch between ruby + gem + bundler

Solution 4 - Ruby on-Rails

gem install bundler -v '< 2.0' 

Solution 5 - Ruby on-Rails

I had the same problem recently. In my case I have installed a version on bundler different from what is logged in the Gemfile.lock. Please check

Solution 6 - Ruby on-Rails

I faced this same issue. The issue is caused by the fact that RubyGems cannot find an executable bundle for the bundler gem on the system

To fix it, first run

gem install bundler

if you don't have bundler gem installed locally, then run

gem update --system

That's all

I hope this helps

Solution 7 - Ruby on-Rails

You've to install the exact version of Bundler that RubyGems is looking for by running:

$ gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"

Solution 8 - Ruby on-Rails

I just faced the same error today. The bundler version which I had installed in my system previously was: 1.16.6

Followed the instructions in the official bundler docs on How to Upgrade to Bundler 2 and the below two steps did the trick:

  1. gem install bundler (Helps you get the latest version of bundler which as of today is 2.0.2)
  2. bundle update --bundler

Solution 9 - Ruby on-Rails

I saw a similar error message for the travis bundle after upgrading mac os to Catalina.

Traceback (most recent call last):
	2: from /usr/local/bin/travis:22:in `<main>'
	1: from /usr/local/Cellar/ruby/2.6.5/lib/ruby/2.6.0/rubygems.rb:263:in `bin_path'
/usr/local/Cellar/ruby/2.6.5/lib/ruby/2.6.0/rubygems.rb:284:in `find_spec_for_exe': can't find gem travis (>= 0.a) with executable travis (Gem::GemNotFoundException)

To resolve the issue, I reinstalled travis from source.

brew remove travis;
brew install -s travis

Solution 10 - Ruby on-Rails

This may help solve the problem

bundle update --bundler

Solution 11 - Ruby on-Rails

YEP, this works:

gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"

From: https://bundler.io/blog/2019/05/14/solutions-for-cant-find-gem-bundler-with-executable-bundle.html

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDenCowboyView Question on Stackoverflow
Solution 1 - Ruby on-RailsHolger JustView Answer on Stackoverflow
Solution 2 - Ruby on-RailsRohanView Answer on Stackoverflow
Solution 3 - Ruby on-RailsestaniView Answer on Stackoverflow
Solution 4 - Ruby on-RailsrusllonrailsView Answer on Stackoverflow
Solution 5 - Ruby on-RailsDendeView Answer on Stackoverflow
Solution 6 - Ruby on-RailsPromise PrestonView Answer on Stackoverflow
Solution 7 - Ruby on-RailsManuel SchmitzbergerView Answer on Stackoverflow
Solution 8 - Ruby on-RailsboddhisattvaView Answer on Stackoverflow
Solution 9 - Ruby on-RailsЯрослав РахматуллинView Answer on Stackoverflow
Solution 10 - Ruby on-RailsAbdul BasitView Answer on Stackoverflow
Solution 11 - Ruby on-RailskingPuppyView Answer on Stackoverflow