Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RVM doesn't switch Rubies

Tags:

ruby

rvm

I'm running Ruby 1.9.1p243 on CentOS, and I decided to install rvm to handle upgrading to 1.9.2 or downgrading to 1.8.7 (whichever turns out to work better for rails3).

I followed the instructions here: http://rvm.beginrescueend.com/rvm/install/ and everything installed correctly. I was able to compile and install Ruby 1.8.7, 1.9.1, and 1.9.2.

However, if I try to actually switch to one of the rvm installed Rubies, with rvm use 1.8.7, for example, nothing works. My system still uses the Ruby I have installed in /usr/local/bin/ruby.

An example of the output I get:

$ rvm use 1.8.7
$ ruby -v
ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux]
$ which ruby
/usr/local/bin/ruby
$ rvm use 1.9.2
$ ruby -v
ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux]
$ which ruby
/usr/local/bin/ruby

I have no idea why this is happening, and I can't seem to find anything online about the issue either. Any help would be appreciated.

like image 235
Evan Cordell Avatar asked Jul 18 '10 19:07

Evan Cordell


People also ask

How do I use a specific version of Ruby?

Selecting a version of Ruby You'll need to install bundler 1.2. x or above to use the ruby keyword and bundler 1.13. x or above to use a Ruby version specifier. You can use the ruby keyword in your app's Gemfile to specify a specific version of Ruby.


3 Answers

Just came across the same problem.

Instead of appending the following script to ~/.bash_profile, append it to ~/.bashrc:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.

And then restart the terminal.

like image 193
Shuo Avatar answered Sep 28 '22 02:09

Shuo


Typically rvm support is easiest via IRC (#rvm on freenode) - in this particular case, what does running "type rvm | head -n1" show? it should show "rvm is a function". If not, that means the line to source rvm isn't being run correctly and hence switching doesn't work. Typically this means you either have a return in your ~/.bashrc or you missed adding the line to source rvm.

like image 23
Sutto Avatar answered Sep 28 '22 02:09

Sutto


Your install is as root account. Try this in shell [[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm"

before rvm switch operation. I add this line in my profile file and now all is ok.

like image 29
germanlinux Avatar answered Sep 28 '22 02:09

germanlinux