Ruby 1.8.x と 1.9.x を共存させる
- 2009/02/初旬時点で、Ver.1.8.7p72 と Ver.1.9.1 を共存させます。
- 前提条件として、1.8.x 系を普段利用し、検証用に1.9.x にスイッチできるようにします。
Ver.1.8.x の移動
- この親ページなWIKIでは、"C:\Program Files\GNU\Ruby" に bin\ 等を入れているはずです。それらは、まず "C:\Program Files\GNU\Ruby\18\" 以下に移動します。
- Pathの書き換え。"C:\Program Files\GNU\Ruby\bin" を書き足した部分があるかと思いますが、まずはそれを削除。末尾は削除した部分に変わって、「;%PathRuby18%''」 に追記(変更)します。
- Windows XP SP3 なら、「システムのプロパティ」-「詳細設定」タブ - 「環境変数(N)」ボタン、「システム環境変数」のPath変数が該当。
- PathRuby18 の定義。「新規(W)」で、変数名「PathRuby18」、変数値に"C:\Program Files\GNU\Ruby\18\bin\" を定義します。
- PathRuby19 という変数も定義予定ですが、この時点では「あえて作りません」。
- コマンドプロンプト (WinKey+R、 cmd でもOK) で、「ruby -v」コマンドで動作を確認。
C:\Documents and Settings\asaasa> ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]
C:\Documents and Settings\asaasa> _
Ver.1.9.x の入手と準備
- Win32版Ruby バイナリ配布の公式ページ から、ruby-1.9.x-pxxx-i386-mswin32.zip 最新リリース版 (2009/02/初旬時点では ruby-1.9.1-p0-i386-mswin32.zip が最新版) をダウンロードします。
- 圧縮フォルダや何らかの解凍ソフトで、zipを展開します。(3. の手順を省略する意味では、展開先をあらかじめ指定しておくと楽です)
- 展開されたファイルたちは、bin\ など一式を "C:\Program Files\GNU\Ruby\19" (19 フォルダは新規に作成します) に移動またはコピーします。
スイッチするためのバッチ処理を記述
C:\Documents and Settings\asaasa>copy con "C:\Program Files\GNU\Ruby\18\bin\ruby19.cmd"
@echo off
set PathRuby19="C:\Program Files\GNU\Ruby\19\bin\"
set Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%PathRuby19%
ruby -v
^Z ←CTRL+ZキーとEnterの組み合わせ
1 個のファイルをコピーしました。
C:\Documents and Settings\asaasa> _
または、テキストエディタで下記な内容の 「ruby19.cmd」を Ruby\18\bin 以下に作成します。
@echo off
set PathRuby19="C:\Program Files\GNU\Ruby\19\bin\"
set Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%PathRuby19%
ruby -v
さて、コマンドプロンプトを閉じて、新規に開きなおします。
ruby19 とタイプしたら、どうなるでしょうか。
C:\Documents and Settings\asaasa>ruby19
ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32]
C:\Documents and Settings\asaasa> _
うまくいった場合は、上記のようになります。1.8に戻したくなったら、コマンドプロンプトを閉じて、開き直せばOKです。
Let's try
あとは、既存のスクリプトを ruby ***.rb として起動し、1.9.x と 1.8.x 両方に対応できるよう修正していくとよいかと思われます。*1