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

前端 未结 4 1033
再見小時候
再見小時候 2020-12-07 11:34

Since Windows doesn\'t support rvm (Ruby version Manager), how do we have

  • Ruby 1.8.7, Rails 2.3.8
  • Ruby 1.8.7, Rails 3.0.0
  • Ruby 1.9.2, Rai
相关标签:
4条回答
  • 2020-12-07 12:21

    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 Rubt 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"
    
    0 讨论(0)
  • 2020-12-07 12:24

    After installing and registering all your ruby installations with uru, you'll need to install DevKit for each of the ruby versions installed. For installation follow these instructions.

    I generally store the DevKit next to the version of Ruby to which it belongs, for example, C:\Ruby\Ruby193\DevKit where Ruby193 is the folder containing the 193 version of Ruby that I registered with uru.

    0 讨论(0)
  • 2020-12-07 12:29

    I wrote myself a little batch file which creates a junction (aka symlinks) on the NTFS. The idea is to keep the PATH untouched. The path always contains c:\devkit\bin;c:\ruby\bin;.... The following Batch file changes the links to the actual directories.

    @echo off
    echo 1 - Ruby 1.9.3
    echo 2 - Ruby 2.0.0 (32 bit)
    echo 3 - Ruby 2.0.0 (64 bit)
    choice /C 123 /M "Which Ruby? "
    
    if errorlevel 255 goto confused
    if errorlevel 3 goto 3
    if errorlevel 2 goto 2
    if errorlevel 1 goto 1
    if errorlevel 0 goto 0
    goto confused
    
    :1
    if exist c:\ruby rmdir c:\ruby
    if exist c:\devkit rmdir c:\devkit
    mklink /j c:\ruby c:\ruby193
    mklink /j c:\devkit c:\devkit-4.5.2
    goto end
    
    :2
    if exist c:\ruby rmdir c:\ruby
    if exist c:\devkit rmdir c:\devkit
    mklink /j c:\ruby c:\ruby2-x86
    mklink /j c:\devkit c:\devkit-x64
    goto end
    
    :3
    if exist c:\ruby rmdir c:\ruby
    if exist c:\devkit rmdir c:\devkit
    mklink /j c:\ruby c:\ruby2-x64
    mklink /j c:\devkit c:\devkit-x64
    goto end
    
    :confused
    echo I'm confused ...
    
    :end
    ruby -v
    
    0 讨论(0)
  • 2020-12-07 12:31

    From what I could tell, uru only manages versions of RUBY.

    For versions of RAILS, where you've already 2 or more versions on your local maching, to open a project in one's development environment, using an older version of rails, you enter the following in the command window:

    rails _3.2.11_ s

    where 3.2.11 represents the version of RAILS you want it to use, which you want to be the same version as listed in your project's file:

    Gemfile.lock

    0 讨论(0)
提交回复
热议问题