24

I just installed Ruby 2.0.0 using rbenv and set it to the global ruby version for my system. Since 2.0 is compatible with 1.9.3, I tried to start up a Rails project with it, but got the following error. I did rbenv rehash after installing 2.0

The `rails' command exists in these Ruby versions:
  1.9.3-p327

Does this mean that every gem I installed on my system with 1.9.3 has to be reinstalled if I wish to use it with 2.0?

BrainLikeADullPencil
  • 11,313
  • 24
  • 78
  • 134

3 Answers3

49

As seen here:

You need to reinstall bundler for each version of Ruby you use. See Ruby versions where you have it installed:

rbenv whence bundle

See your current version:

rbenv version

Install bundler for that version, if missing:

gem install bundler
Adam Barthelson
  • 1,088
  • 1
  • 11
  • 20
17

Yes. Rbenv (and RVM) have separate "gem home" directories for each installed version of Ruby. There may be ways to symlink certain directories to get them to share, but this will likely lead to problems, particularly with gems that include native C extensions, which may or may not compile and run cleanly in multiple versions.

If you have a Gemfile, easiest thing is to just bundle install again for Ruby 2.0, giving you duplicate copies of many gems and Ruby-2.0 compiled versions of any native gems.

Patrick
  • 5,714
  • 4
  • 31
  • 36
0

Another solution to this is to copy (or reinstall) the gems from your previous version to the newly installed version. How to do that is answered in detail in this question, which has two scripts -- one to install from local cache, one to reinstall from the internet (mine).

Community
  • 1
  • 1
Jim Meyer
  • 1,326
  • 1
  • 11
  • 12