Bundle not working with rbenv

RubyBundlerRbenv

Ruby Problem Overview


I'm trying to use bundler with rbenv. I has been working until today. The only thing I may have done to break it was gem pristine --all or gem cleanup ? When trying to install bundler i get the following error.

Antarrs-MacBook-Pro:some-app antarrbyrd$ sudo gem install bundler
Password:
Bundler gave the error "Could not find mail-2.5.4 in any of the sources" while processing "/Users/antarrbyrd/dev/some-app/Gemfile". Perhaps you forgot to run "bundle install"?
Successfully installed bundler-1.7.12
Parsing documentation for bundler-1.7.12
Done installing documentation for bundler after 3 seconds
1 gem installed
Antarrs-MacBook-Pro:some-app antarrbyrd$ bundle install
/Users/antarrbyrd/.rbenv/versions/2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'bundler' (>= 0) among 8 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/antarrbyrd/.gem', execute `gem env` for more information
	from /Users/antarrbyrd/.rbenv/versions/2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:324:in `to_spec'
	from /Users/antarrbyrd/.rbenv/versions/2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
	from /usr/local/bin/bundle:22:in `<main>'

when i do rbenv rehash or rbenv bundler on it get this error

Bundler gave the error "Could not find mail-2.5.4 in any of the sources" while processing "/Users/antarrbyrd/dev/some-app/Gemfile". Perhaps you forgot to run "bundle install"?

~/.bash_profile

export BUNDLER_EDITOR=atom
export PATH=$PATH:/usr/local/opt/android-sdk/build-tools/21.1.2
export HOMEBREW_GITHUB_API_TOKEN=...

export ANDROID_HOME=/usr/local/opt/android-sdk
export PATH="$HOME/.rbenv/bin:$PATH"
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

# Allow local Gem Managment 
# export GEM_HOME="$HOME/.gem"
# export GEM_PATH="$HOME/.gem"
# export PATH="$HOME/.gem/bin:$PATH"

gem env

RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - RUBY VERSION: 2.1.2 (2014-05-08 patchlevel 95) [x86_64-darwin14.0]
  - INSTALLATION DIRECTORY: /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
  - RUBY EXECUTABLE: /usr/local/var/rbenv/versions/2.1.2/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/var/rbenv/versions/2.1.2/bin
  - SPEC CACHE DIRECTORY: /Users/antarrbyrd/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-14
  - GEM PATHS:
     - /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
     - /Users/antarrbyrd/.gem/ruby/2.1.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "-n/usr/local/bin"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/var/rbenv/versions/2.1.2/bin
     - /usr/local/Cellar/rbenv/0.4.0/libexec
     - /Users/antarrbyrd/.gem/bin
     - /usr/local/var/rbenv/shims
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /usr/local/var/rbenv/shims
     - /Users/antarrbyrd/.rbenv/bin
     - /Users/antarrbyrd/.rbenv/shims
     - /Users/antarrbyrd/.gem/bin
     - /usr/local/opt/android-sdk/build-tools/21.1.2

update

I reinstalled rbenv via brew and now I get the following error when running bundle install.

The `bundle' command exists in these Ruby versions:
  2.1.5

response to Joel

Antarrs-MacBook-Pro:myapp antarrbyrd$ command -v ruby
/usr/local/var/rbenv/shims/ruby
Antarrs-MacBook-Pro:myapp antarrbyrd$ command -v bundle
/usr/local/bin/bundle
Antarrs-MacBook-Pro:myapp antarrbyrd$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin14.0]
Antarrs-MacBook-Pro:myapp antarrbyrd$ bundle -v
Bundler version 1.7.12
Antarrs-MacBook-Pro:myapp antarrbyrd$ 

Ruby Solutions


Solution 1 - Ruby

Your installation is caught in a loop.

Change to a directory that is not your app, and that doesn't have a Gemfile.

Then do the usual gem install bundle (and use sudo if you need it)

Then change to your app directory, and do the usual bundle install.

Does that solve your issue?

If you need more help, can run these commands then paste the results in your question?

 $ command -v ruby
 $ command -v bundle
 $ ruby -v
 $ bundle -v

Look for any mismatch between the results and what you expect. This will help you track down what's happening. You may need to update your Gemfile Ruby version.

(Also, you may want to consider changing from rbenv to chruby because it's better IMHO with these kinds of path issues)

Solution 2 - Ruby

I got:

rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.3.0

after upgrade to Ruby 2.3.1

and it's solved by:

gem install rails

from working folder

Solution 3 - Ruby

gem install bundler

You need to reinstall bundler for each version of Ruby you use.

Reference: github issue

Solution 4 - Ruby

Try to use:

> bin/bundle

instead of

> bundle

Solution 5 - Ruby

I had the exact same issue and tried absolutely everything here and all over internet but the command that finally worked for me was:

gem update --system

Solution 6 - Ruby

If none of the other solutions work for you try this.

For some reason I could not install bundler on specific ruby versions, thus reinstalling bundler did nothing for me.

However I noticed how rbenv whence bundle specified that bundle was active in some ruby versions, but not others. If you look under the path for the gem without bundler (for me this was ~/.rbenv/versions/2.5.1/bin/) you will notice that it is not there. However under other versions that whence can recognise you will see the executable is there (for me it was there under ~/.rbenv/versions/2.3.1/bin/bundle).

Just copy the executable over from the working ruby version to the one that is broken. Then at the top of the file you will notice sha-bang is set to the other ruby version (for me this was #!/Users/myuser/.rbenv/versions/2.3.1/bin/ruby). Change the version path to the ruby version you want to fix and then it will all magically start working.

Solution 7 - Ruby

Here's what worked for me with a legacy project:

  1. Set the proper ruby version via rbenv

    
    $ cd YOUR_PROJECT_DIRECTORY
    $ rbenv install 2.1.0
    $ rbenv local 2.1.0
    

  2. If you still get an error when installing bundle, look for a PATH warning:

    
    $ gem install bundle
    WARNING:  You don't have /Users/lex/.gem/ruby/2.1.0/bin in your PATH,
    gem executables will not run.
    Successfully installed bundle-0.0.1
    1 gem installed
    

  3. Update your PATH:

    
    $ PATH=/Users/lex/.gem/ruby/2.1.0/bin:$PATH
    

  4. Try again:

    
    $ bundle install
    Fetching: bundler-1.11.2.gem (100%)
    HTTP GET https://bundler.rubygems.org/api/v1/dependencies
    HTTP 200 OK
    Fetching gem metadata from https://rubygems.org/
    . . .
    

Using sudo to install gems is generally not what you want to do.

Solution 8 - Ruby

Try setting ruby globally

rbenv global 2.3.1

Solution 9 - Ruby

I have a similar issue today. My issue was fixed as follows:

system dependencies
- rvenv
- ruby 2.5.0
- rails 5.1.6
check bundler version in Gemfile.lock
BUNDLED WITH
  1.17.3
install specific version of bundler
$ gem install bundler -v 1.17.3
Fetching bundler-1.17.3.gem
Successfully installed bundler-1.17.3
Parsing documentation for bundler-1.17.3
Done installing documentation for bundler after 3 seconds
1 gem installed

Hope this will help somebody.

Solution 10 - Ruby

For installing bundler with Ruby less than 2.3.0 use following command

gem install bundler -v '< 2'

Solution 11 - Ruby

I had a similar issue running Guard with Foreman. My original command to run it was:

bundle exec foreman run guard -c

This gave me these errors:

11:07:52 - INFO - Run all
11:07:52 - INFO - Running all specs
/Users/MyUser/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'bundler' (>= 0) among 146 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/MyUser/devel/o2/vesta/vendor/bundle/ruby/2.2.0', execute `gem env` for more information
        from /Users/MyUser/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/dependency.rb:324:in `to_spec'
        from /Users/MyUser/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
        from /Users/MyUser/.rbenv/versions/2.2.0/bin/bundle:22:in `<main>'

The simple fix was to not use bundle exec with foreman but to use it against guard. e.g.

foreman run bundle exec guard -c

Hope this helps.

Solution 12 - Ruby

None of the provided answers worked for me, so I had to completely uninstall rbenv and everything related to Ruby and then just install Ruby 2.7.1 with Homebrew; brew install ruby.

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
QuestionAntarr ByrdView Question on Stackoverflow
Solution 1 - RubyjoelparkerhendersonView Answer on Stackoverflow
Solution 2 - RubyChaosPredictorView Answer on Stackoverflow
Solution 3 - RubyVbpView Answer on Stackoverflow
Solution 4 - RubySalma GomaaView Answer on Stackoverflow
Solution 5 - RubykokoView Answer on Stackoverflow
Solution 6 - RubyAlex CohenView Answer on Stackoverflow
Solution 7 - Rubyl3xView Answer on Stackoverflow
Solution 8 - RubyAkshat BajajView Answer on Stackoverflow
Solution 9 - RubymnishiguchiView Answer on Stackoverflow
Solution 10 - RubyDanish RasheedView Answer on Stackoverflow
Solution 11 - RubyemsonView Answer on Stackoverflow
Solution 12 - RubyAsbjørn UlsbergView Answer on Stackoverflow