How to have multiple versions of Ruby AND Rails, and their combinations on Windows?

Use uru. It is a multi-platform ruby environment manager. You can download the Windows version here: https://bitbucket.org/jonforums/uru/wiki/Downloads

Install the tool

Assuming C:\tools is on PATH and uru_rt.exe was extracted to C:\tools

C:\tools>uru_rt admin install

This adds uru.bat file to the tools directory.

Register ruby

uru admin add C:\ruby200\bin

List available rubies

uru ls
174         : jruby 1.7.4 (1.9.3p392) 2013-05-16 2390d3b on Java HotSpot(TM)
200p255     : ruby 2.0.0p255 (2013-07-07 revision 41812) [i686-linux]
=> system   : ruby 2.1.0dev (2013-07-06 trunk 41808) [i686-linux]

Switch ruby version

uru 174
---> Now using jruby 1.7.4 tagged as `174`

More commands can be found here: https://bitbucket.org/jonforums/uru/wiki/Examples


Old answer

I use Pik to manage multiple versions of ruby on a Windows machine.

Install the pik gem

> gem install pik
Successfully installed pik-0.2.6
1 gem installed

Install pik to a location that’s in your path, but someplace other than your ruby\bin dir.

>echo %path%
PATH=c:\pik;c:\ruby\Ruby187\bin;

>pik_install C:\pik
Thank you for using pik.

Installing to C:\pik
pik is installed

Install Ruby 1.9.2 using RubyInstaller and add the new Ruby version to pik registry.

>pik add C:\Ruby192\bin

List the available Ruby versions:

>pik list
187: ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mingw32] *
192: ruby 1.9.2p0 (2010-08-18) [i386-mingw32]

To switch to Ruby 1.9.2:

>pik 192
>pik list
187: ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mingw32]
192: ruby 1.9.2p0 (2010-08-18) [i386-mingw32] *

To switch between different versions of Rails:

In Rails 2.x, set the RAILS_GEM_VERSION in config/environment.rb file:

RAILS_GEM_VERSION = '= 2.3.8' unless defined? RAILS_GEM_VERSION

In rails 3, use the Gemfile to specify the Rails version:

gem "rails", "3.0.0"

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)