Так как Windows не поддерживает rvm (Ruby version Manager), как у нас
- Ruby 1.8.7, Rails 2.3.8
- Ruby 1.8.7, Rails 3.0.0
- Ruby 1.9.2, Rails 3.0.0
на том же ПК? Можно использовать виртуальные машины, но это довольно хлопотно.
Так как Windows не поддерживает rvm (Ruby version Manager), как у нас
на том же ПК? Можно использовать виртуальные машины, но это довольно хлопотно.
Используйте 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
в каталог инструментов.
Регистрировать ruby
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]
Switch ruby version
uru 174
---> Now using jruby 1.7.4 tagged as `174`
Дополнительные команды можно найти здесь: https://bitbucket.org/jonforums/uru/wiki/Examples
Я использую Pik для управления несколькими версиями ruby на машине Windows.
Установите драгоценный камень pik
> 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
Установите Rubt 1.9.2 с помощью RubyInstaller и добавьте новую версию 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
В рельсах 3 используйте Gemfile
, чтобы указать версию Rails:
gem "rails", "3.0.0"
Я написал себе небольшой пакетный файл, который создает соединение (aka symlinks) на 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
Из того, что я мог сказать, uru управляет только версиями RUBY.
В версиях RAILS, где у вас уже есть две или более версии локального махинации, чтобы открыть проект в одной среде разработки, используя более старую версию рельсов, вы вводите следующее в командном окне:
rails _3.2.11_ s
где 3.2.11 представляет версию RAILS, которую вы хотите использовать, который вы хотите быть той же версией, что и в вашем файле проекта:
Gemfile.lock
После установки и регистрации всех ваших рубиновых установок с uru вам необходимо установить DevKit для каждой из рубиновых версий. Для установки следуйте этим инструкциям .
Я обычно храню DevKit рядом с версией Ruby, к которой он принадлежит, например, C:\Ruby\Ruby193\DevKit
, где Ruby193 - это папка, содержащая версию Ruby 193, которую я зарегистрировал с помощью uru
.