FLYING

/* TODO: 気の利いた説明を書く */

WindowsでRuby1.8とRuby1.9を共存させる(RubyGemsも!)

記事タイトルの通り,Windows環境でRuby1.8とRuby1.9共存させるための覚え書きです。

下準備

Downloads(いつもお世話になってます)から,Ruby1.9インストーラとRuby1.8のインストーラをそれぞれダウンロードします。ダウンロードしたインストーラを実行し,"C:\bin\ruby"*1Ruby1.9を,"C:\bin\ruby18"にRuby1.8をインストールします。インストール途中で「Add Ruby executables to your PATH」というチェックボックスが現れるので,Ruby1.9の方のみこのチェックボックスをチェックしてください。

Ruby共存のための設定

"C:\bin\ruby\binにruby18.bat"という名前のファイルを作成し,適当なテキストエディタで次のように編集します。文字コードShift_JISにしてください。

@echo off
set __CALLER_PATH__=%CD%
C:\Bin\ruby18\bin\ruby %*
cd %__CALLER_PATH__%

RubyGemsの導入

Ruby1.8のバイナリにはRubyGemsが付属していないので,http://rubyforge.org/projects/rubygems/からRubyGemsのインストール用パッケージをダウンロードし,"ruby18 setup.rb"*2を実行してRubyGemsをインストールします。

RubyGems共存のための設定

先ほどと同様に,"C:\bin\ruby\binにgem18.bat"という名前のファイルを作成し,次のように編集します。

@echo off
set __CALLER_PATH__=%CD%
C:\Bin\ruby18\bin\gem %*
cd %__CALLER_PATH__%

続いて,適当なテキストエディタで"C:\bin\ruby18\bin\gem.bat"を開き,次のように書き換えます*3

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"ruby18" "C:/Bin/ruby/1_8/bin/gem" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"ruby18" "%~dpn0" %*

できあがり

これで作業は完了です。きちんとインストールされていれば,次のようになるはずです。

>ruby -v
ruby 1.9.2p136 (2010-12-25) [i386-mingw32]

>ruby18 -v
ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32]

>gem -v
1.3.7

>gem list

*** LOCAL GEMS ***

minitest (1.6.0)
rake (0.8.7)
rdoc (2.5.8)

>gem18 -v
1.3.7

>gem18 list

*** LOCAL GEMS ***


*1:このインストール先ディレクトリはあくまでも一例です。好みで他のディレクトリに読み替えてください

*2:Ruby共存のための設定が完了していないと実行できません。コマンドが存在しないという旨のエラーが表示された場合は,パスがきちんと通っているか確認してください

*3:バッチファイルから呼ばれるRubyのパスをRuby1.8の方に書き換えただけです