Top > Ruby > 前準備 > Windows > 1.8.x+1.9.x

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 の移動

  1. この親ページなWIKIでは、"C:\Program Files\GNU\Ruby" に bin\ 等を入れているはずです。それらは、まず "C:\Program Files\GNU\Ruby\18\" 以下に移動します。
  2. Pathの書き換え。"C:\Program Files\GNU\Ruby\bin" を書き足した部分があるかと思いますが、まずはそれを削除。末尾は削除した部分に変わって、「;%PathRuby18%''」 に追記(変更)します。
    • Windows XP SP3 なら、「システムのプロパティ」-「詳細設定」タブ - 「環境変数(N)」ボタン、「システム環境変数」のPath変数が該当。
  3. PathRuby18 の定義。「新規(W)」で、変数名「PathRuby18」、変数値に"C:\Program Files\GNU\Ruby\18\bin\" を定義します。
    • PathRuby19 という変数も定義予定ですが、この時点では「あえて作りません」。
  4. コマンドプロンプト (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 の入手と準備

  1. Win32版Ruby バイナリ配布の公式ページ から、ruby-1.9.x-pxxx-i386-mswin32.zip 最新リリース版 (2009/02/初旬時点では ruby-1.9.1-p0-i386-mswin32.zip が最新版) をダウンロードします。
  2. 圧縮フォルダや何らかの解凍ソフトで、zipを展開します。(3. の手順を省略する意味では、展開先をあらかじめ指定しておくと楽です)
  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


*1 おまけ。自作のスクリプトはほとんどが互換性の絡みで、エラーで動かなくなってしまっていました。段階的に1.8から1.9対応を進めていかないといけないですね。

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Fri, 22 Jul 2011 21:57:59 JST (1525d)