59

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$ 
Antarr Byrd
  • 24,863
  • 33
  • 100
  • 188

13 Answers13

101

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)

joelparkerhenderson
  • 34,808
  • 19
  • 98
  • 119
41

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

ChaosPredictor
  • 3,777
  • 1
  • 36
  • 46
  • 2
    `gem install rails` was what I was missing, thank you – svnm Feb 02 '17 at 00:01
  • 7
    You just need to re-install `bundler` after upgrading your Ruby version using `rbenv`. `rbenv` keeps your gems containerized by each version of Ruby. So you need to do `gem install bundler` and you should be good to go. – Joshua Pinter Feb 24 '18 at 21:46
  • should be `gem install bundler` instead of `gem install rails`... not everyone would be working with rails – Rakib Dec 05 '19 at 09:18
39
gem install bundler

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

Reference: github issue

Community
  • 1
  • 1
Vbp
  • 1,912
  • 1
  • 22
  • 30
16

Try to use:

bin/bundle

instead of

bundle

Salma Gomaa
  • 952
  • 1
  • 13
  • 18
14

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
koko
  • 315
  • 2
  • 6
6

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.

Alex Cohen
  • 5,596
  • 16
  • 54
  • 104
  • This was the only working solution for me. I don’t like that it works, but I appreciate your writing it up. I’d like to know why rbenv isn’t doing what it’s supposed to do? I’ve lost enough time however. – Screenack Jan 28 '21 at 21:55
4

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
  1. 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
  1. Update your PATH:

    $ PATH=/Users/lex/.gem/ruby/2.1.0/bin:$PATH
  1. 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.

l3x
  • 30,760
  • 1
  • 55
  • 36
  • That first step, of specifying the local (or global) version of ruby you want to use is critical, otherwise there is a loop, notwithstanding what is in your .ruby-version file – Jerome Apr 07 '17 at 10:42
2

Try setting ruby globally

rbenv global 2.3.1
Akshat Bajaj
  • 101
  • 1
  • 6
2

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.

mnishiguchi
  • 2,051
  • 23
  • 17
2

For installing bundler with Ruby less than 2.3.0 use following command

gem install bundler -v '< 2'
Aman Srivastava
  • 1,007
  • 1
  • 13
  • 25
2

I recently bumped my ruby version from 2.7.5 to 2.7.6.

Doing sudo gem install cocoapods after installing the new ruby version did the trick.!

0

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.

emson
  • 10,005
  • 4
  • 24
  • 27
0

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.

Asbjørn Ulsberg
  • 8,721
  • 3
  • 45
  • 61
  • 1
    To the extent that this is an answer, it's a bad answer. `brew install ruby` installs ruby globally with no control over the version and using ruby with global gems will cause issues with projects that use bundler / Gemfiles – so001 May 18 '21 at 19:26