There are many ways on how to run multiple versions of Ruby on Unix.
The most simple solution is by creating a shell script.

Michael Greenly wrote a script to do just that and it worked great for me for several months.
Check out his post.

This was how I switched from Ruby 1.8.7 to Ruby 1.9.2 Preview 1 and back to Ruby 1.8.7.

 $ sudo select_ruby
[sudo] password for katz:

current = ruby 1.8.7 (2008-05-31 patchlevel 0) [i686-linux]

Select Option

1. ruby-1.8.7
2. ruby-1.9.2-preview1
3. exit

 Your choice? : 2
 $ ruby -v
ruby 1.9.2dev (2009-07-18 trunk 24186) [i686-linux]
 $ sudo select_ruby

current = ruby 1.9.2dev (2009-07-18 trunk 24186) [i686-linux]

Select Option

1. ruby-1.8.7
2. ruby-1.9.2-preview1
3. exit

 Your choice? : 1
 $ ruby -v
ruby 1.8.7 (2008-05-31 patchlevel 0) [i686-linux]

Very neat.

RVM

But lately I found out about Ruby Version Manager and it seems to be a more sensible way to install multiple versions of Ruby.
Here's how I installed it on Ubuntu.

 $ sudo gem install rvm
[sudo] password for katz:
Successfully installed rvm-0.0.84
1 gem installed
Installing ri documentation for rvm-0.0.84...
Installing RDoc documentation for rvm-0.0.84...
 $ rvm-install

rvm - shell scripts that allows a user to manage multiple 
ruby versions in their own account.

    Installing to /home/katz/.rvm...
    Adding 'if [[ -s /home/katz/.rvm/scripts/rvm ]] ; 
then source /home/katz/.rvm/scripts/rvm ; fi' to /home/katz/.bash_profile.
    Adding 'if [[ -s /home/katz/.rvm/scripts/rvm ]] ; 
then source /home/katz/.rvm/scripts/rvm ; fi' to /home/katz/.bashrc.
    Adding 'if [[ -s /home/katz/.rvm/scripts/rvm ]] ; 
then source /home/katz/.rvm/scripts/rvm ; fi' to /home/katz/.zshrc.

rvm notes for Linux

*  For JRuby (if you wish to use it) you will need:

  $ aptitude install sun-java6-bin sun-java6-jre sun-java6-jdk

*  For MRI & ree (if you wish to use it) you will need:

 $ aptitude install bison build-essential zlib1g-dev libssl-dev libreadline5-dev libxml2-dev

 *  In order to use rvm the following line must occur in your 
shell's loading files, after all path/variable settings.:
 *  if [[ -s /home/katz/.rvm/scripts/rvm ]] ; 
then source /home/katz/.rvm/scripts/rvm ; fi
 *  CLOSE THIS SHELL AND OPEN A NEW ONE in order to use rvm.

RTFM:
     http://rvm.beginrescueend.com/

w⦿‿⦿t!

    ~ Wayne

rvm 0.0.84 by Wayne E. Seguin ([email protected]) [http://rvm.beginrescueend.com/]

Since you don't want to install all versions of Ruby, you might want to do this:

rvm list --all
(ruby-)1.8.0-tv1_8_0
(ruby-)1.8.0-tv1_8_0_preview1
(ruby-)1.8.0-tv1_8_0_preview2
(ruby-)1.8.0-tv1_8_0_preview3
(ruby-)1.8.0-tv1_8_0_preview4
(ruby-)1.8.0-tv1_8_0_preview5
(ruby-)1.8.0-tv1_8_0_preview6
(ruby-)1.8.0-tv1_8_0_preview7
(ruby-)1.8.1-tv1_8_1
(ruby-)1.8.1-tv1_8_1_preview1
(ruby-)1.8.1-tv1_8_1_preview2
(ruby-)1.8.1-tv1_8_1_preview3
(ruby-)1.8.1-tv1_8_1_preview4
(ruby-)1.8.2-tv1_8_2
(ruby-)1.8.2-tv1_8_2_preview1
(ruby-)1.8.2-tv1_8_2_preview2
(ruby-)1.8.2-tv1_8_2_preview3
(ruby-)1.8.2-tv1_8_2_preview4
(ruby-)1.8.3-tv1_8_3
(ruby-)1.8.3-tv1_8_3_preview1
(ruby-)1.8.3-tv1_8_3_preview2
(ruby-)1.8.3-tv1_8_3_preview3
(ruby-)1.8.4-tv1_8_4
(ruby-)1.8.4-tv1_8_4_preview1
(ruby-)1.8.4-tv1_8_4_preview2
(ruby-)1.8.5-tv1_8_5
(ruby-)1.8.5-tv1_8_5_11
(ruby-)1.8.5-tv1_8_5_113
(ruby-)1.8.5-tv1_8_5_114
(ruby-)1.8.5-tv1_8_5_115
(ruby-)1.8.5-tv1_8_5_12
(ruby-)1.8.5-tv1_8_5_2
(ruby-)1.8.5-tv1_8_5_231
(ruby-)1.8.5-tv1_8_5_35
(ruby-)1.8.5-tv1_8_5_52
(ruby-)1.8.5-tv1_8_5_preview1
(ruby-)1.8.5-tv1_8_5_preview2
(ruby-)1.8.5-tv1_8_5_preview3
(ruby-)1.8.5-tv1_8_5_preview4
(ruby-)1.8.5-tv1_8_5_preview5
(ruby-)1.8.6-tv1_8_6
(ruby-)1.8.6-tv1_8_6_110
(ruby-)1.8.6-tv1_8_6_111
(ruby-)1.8.6-tv1_8_6_114
(ruby-)1.8.6-tv1_8_6_230
(ruby-)1.8.6-tv1_8_6_286
(ruby-)1.8.6-tv1_8_6_287
(ruby-)1.8.6-tv1_8_6_36
(ruby-)1.8.6-tv1_8_6_368
(ruby-)1.8.6-tv1_8_6_369
(ruby-)1.8.6-tv1_8_6_383
(ruby-)1.8.6-tv1_8_6_preview1
(ruby-)1.8.6-tv1_8_6_preview2
(ruby-)1.8.6-tv1_8_6_preview3
(ruby-)1.8.7-tv1_8_7
(ruby-)1.8.7-tv1_8_7_160
(ruby-)1.8.7-tv1_8_7_17
(ruby-)1.8.7-tv1_8_7_173
(ruby-)1.8.7-tv1_8_7_174
(ruby-)1.8.7-tv1_8_7_22
(ruby-)1.8.7-tv1_8_7_71
(ruby-)1.8.7-tv1_8_7_72
(ruby-)1.8.7-tv1_8_7_preview1
(ruby-)1.8.7-tv1_8_7_preview2
(ruby-)1.8.7-tv1_8_7_preview3
(ruby-)1.8.7-tv1_8_7_preview4
(ruby-)1.9.0-tv1_9_0_0
(ruby-)1.9.0-tv1_9_0_1
(ruby-)1.9.0-tv1_9_0_2
(ruby-)1.9.0-tv1_9_0_3
(ruby-)1.9.0-tv1_9_0_4
(ruby-)1.9.0-tv1_9_0_5
(ruby-)1.9.1-tv1_9_1_0
(ruby-)1.9.1-tv1_9_1_126
(ruby-)1.9.1-tv1_9_1_127
(ruby-)1.9.1-tv1_9_1_128
(ruby-)1.9.1-tv1_9_1_129
(ruby-)1.9.1-tv1_9_1_243
(ruby-)1.9.1-tv1_9_1_preview1
(ruby-)1.9.1-tv1_9_1_preview2
(ruby-)1.9.1-tv1_9_1_rc1
(ruby-)1.9.1-tv1_9_1_rc2
(ruby-)1.9.2-tv1_9_2_preview1
(ruby-)1.9.2-tv1_9_2_preview2
(ruby-)1.8.6(-p383)
(ruby-)1.8.6-head
(ruby-)1.8.7(-p174)
(ruby-)1.8.7-head
(ruby-)1.9.1(-p243)
(ruby-)1.9.1-head
(ruby-)1.9.2-preview1
jruby-1.2.0
jruby-1.3.0
jruby-1.3.1
jruby(-1.4.0) # the default
jruby-head
rbx(-head) # rubinius head, the default rbx
rbx(-head) --jit (rubinius head with LLVM enabled)
ree-1.8.6
ree(-1.8.7) # the default
ree-1.8.6-head
ree-1.8.7-head
mput(-head) # shyouhei head, the default mput

I think most relevant and acceptable versions are Ruby 1.8.7 and Ruby 1.9 versions. I prefer to have Ruby 1.9.1-tv1_9_1_rc2 and 1.8.7 versions.

Do not worry, it will not do anything about the Ruby version installed on root.

rvm install ruby-1.9.1 #this will download the stable version of Ruby 1.9
rvm install ruby-1.8.7-tv1_8_7_72

So now I have these Ruby Versions:

rvm list
ruby-1.8.7-tv1_8_7_72  
(ruby -v # => ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-linux]) )
ruby-1.9.1-p243  
( ruby -v # => ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux]) )
system ( ruby -v # => /opt/ruby/bin/ruby
ruby 1.8.7 (2008-05-31 patchlevel 0) [i686-linux] )

And now I could switch to using Ruby 1.9.1.

 $ rvm use ruby-1.9.1-p243
<i> Now using ruby 1.9.1 p243 </i>
 $ ruby -v
ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux]
 $ irb
ruby-1.9.1-p243 > exit
 $ gem list

*** LOCAL GEMS ***

rake (0.8.7)
rubygems-update (1.3.5)

And today I found out that Rails 2.3.5 is released. Perfect. :)

Update:

As Wayne has noted on the comment below. "Use" is optional and "ruby" is optional. So to switch to using 1.9.1, use:

 $ rvm 1.9.1-p243
comments powered byDisqus

Hello! I am Kat. I've been a developer for several years. When I'm not sitting down, reading and working for long hours, I am traveling to some place of interest.
If you want to reach out, you can send me an email or add me up on Google Plus.