34

由于 Windows 不支持 rvm(Ruby 版本管理器),我们如何拥有

  • Ruby 1.8.7,Rails 2.3.8
  • Ruby 1.8.7,Rails 3.0.0
  • Ruby 1.9.2、Rails 3.0.0

在同一台电脑上?可以使用虚拟机,但是有点麻烦。

4

4 回答 4

66

使用uru。它是一个多平台的 ruby​​ 环境管理器。您可以在此处下载 Windows 版本:https ://bitbucket.org/jonforums/uru/wiki/Downloads

安装工具

假设C:\tools在 PATH 上uru_rt.exe并被提取到C:\tools

C:\tools>uru_rt admin install

这会将uru.bat文件添加到工具目录。

注册红宝石

uru admin add C:\ruby200\bin

列出可用的红宝石

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]

切换红宝石版本

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

更多命令可以在这里找到:https ://bitbucket.org/jonforums/uru/wiki/Examples


旧答案

我使用Pik在 Windows 机器上管理多个版本的 ruby​​。

安装 pik gem

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

将 pik 安装到您路径中的某个位置,但不是您的 ruby​​\bin 目录。

>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

使用 RubyInstaller 安装 Ruby 1.9.2 并将新的 Ruby 版本添加到pik注册表。

>pik add C:\Ruby192\bin

列出可用的 Ruby 版本:

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

要切换到 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] *

在不同版本的 Rails 之间切换:

在 Rails 2.x 中,在文件中设置 RAILS_GEM_VERSION config/environment.rb

RAILS_GEM_VERSION = '= 2.3.8' unless defined? RAILS_GEM_VERSION

在 rails 3 中,使用Gemfile指定 Rails 版本:

gem "rails", "3.0.0"
于 2010-09-06T03:06:25.657 回答
5

我给自己写了一个小批处理文件,它在 NTFS 上创建了一个连接(又名符号链接)。这个想法是保持 PATH 不变。路径始终包含c:\devkit\bin;c:\ruby\bin;.... 以下批处理文件将链接更改为实际目录。

@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
于 2013-03-25T04:25:11.910 回答
1

据我所知,uru 只管理 RUBY 的版本。

对于 RAILS 版本,如果您在本地机器上已经有 2 个或更多版本,要在开发环境中使用旧版本的 rails 打开项目,您可以在命令窗口中输入以下内容:

导轨_3.2.11_s

其中 3.2.11 表示您希望它使用的 RAILS 版本,您希望与项目文件中列出的版本相同:

Gemfile.lock

于 2015-01-27T08:56:00.527 回答
0

使用uru安装和注册所有 ruby​​ 安装后,您需要为每个已安装的 ruby​​ 版本安装DevKit 。按照这些说明进行安装。

我通常将 DevKit 存储在它所属的 Ruby 版本旁边,例如,C:\Ruby\Ruby193\DevKit其中 Ruby193 是包含我注册的 Ruby 193 版本的文件夹uru

于 2016-07-26T14:37:14.437 回答