20

I'm using rbenv and I get the error Your Ruby version is 2.0.0, but your Gemfile specified 2.2.2 when I run the bundle install command in my project. The strange thing is that I've actually got the 2.2.2 version installed (as my Gemfile specifies), and not the 2.0.0 version. (See image below).

enter image description here

I tried the solution offered in this thread: Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0, but it had no effect.

I'm on an MacBook Air with Yosemite if that makes any difference.

Update:

  • which ruby -> Users/myuser/.rbenv/shims/ruby
  • ruby -v -> ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
  • rbenv global 2.2.2 and rbenv rehash, has no effect
  • which bundle -> /usr/bin/bundle
  • gem env-> - GEM PATHS:
    • /Users/myuser/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0
    • /Users/myuser/.gem/ruby/2.2.0
Community
  • 1
  • 1
bork
  • 1,556
  • 4
  • 21
  • 42

3 Answers3

26

You have a system bundler installed, and rbenv is always trying to pick that up. Based on the steps on this site:

  • Make sure you are using the proper gem version. Type which gem and gem env and check that it points to your 2.2.2 ruby version
  • Install bundler using this gem: gem install bundler
  • Once this version of bundler is installed run rbenv rehash
  • Call which bundler, make sure it now points to the shim version of bundler

gem install might not work properly with rbenv if you have your GEM_HOME or GEM_PATH variable overriden, or if you have custom configs in ~/.gemrc, ~/.gem/gemrc or /etc/gemrc. Check the result of gem env, it should say something like this:

- INSTALLATION DIRECTORY: /Users/<youruser>/.rbenv/versions/<ruby-version>/lib/ruby/gems/<ruby-framework-version>
(...)
- GEM PATHS:
  - /Users/<youruser>/.rbenv/versions/<ruby-version>/lib/ruby/gems/<ruby-framework-version>

(note the ruby-framework-version doesn't always exactly match the ruby-version. If the ruby-version is the correct one then the path should be alright)

if not, make sure you don't have any environment overrides or custom configs inside the files mentioned above.

You might also want to try to remove all bundlers from your machine and try again afterwards:

  • rbenv local system
  • gem uninstall bundler
  • rbenv local 2.2.2
  • gem uninstall bundler
SztupY
  • 10,291
  • 8
  • 64
  • 87
  • `gem env`-> - `GEM PATHS: - /Users/myuser/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0 - /Users/myuser/.gem/ruby/2.2.0` could this be a part of the problem, or is it supposed to say 2.2.0? – bork Aug 20 '15 at 16:39
  • @bork that's okay. Did you try to reinstall bundler and do the rest of the steps? – SztupY Aug 20 '15 at 16:44
  • just did and I went through all the steps in your post. my bundler doesn't point to shim but to `/usr/bin/bundle`, according to `which bundler`. The paths seems to be as they should be. – bork Aug 20 '15 at 16:50
  • 2
    Try reemoving both bundlers: `rbenv local system` `gem uninstall bundler` `rbenv local 2.2.2` `gem uninstall bundler`. Then try again – SztupY Aug 20 '15 at 16:52
  • And don't be fooled by the "DEPRECATED - Never run `rbenv rehash` again" at https://github.com/rbenv/rbenv-gem-rehash. These steps worked for me. – handwovensole Jan 26 '16 at 17:56
9

I finally solved my problem using this thread Bundler not working with rbenv, could not find [gem],

by using these commands after reinstalling rbenv:

  • gem install --no-ri --no-rdoc bundler
  • rbenv rehash
  • bundle --path=vendor/bundle
Community
  • 1
  • 1
bork
  • 1,556
  • 4
  • 21
  • 42
0

For me the problem was that I hadn't properly re-initialized rbenv after installing and switching to the new ruby version.

In my shell config I had an incorrect check to avoid executing source (rbenv init -|psub) if rbenv wasn't installed. After manually sourcing it worked again.

Dennis
  • 56,821
  • 26
  • 143
  • 139