(ruby)(WindowsXP)(Ruby1.8 と Ruby1.9 を 共存させてみた)
1.9系だと 1.8系のスクリプトが動かなかったりする問題が 結構ありますよね
だから 「最新の機能も勉強したいけど 1.8系のスクリプトが動かなくなるのは 嫌だな・・・」と
思う人も少なくないでしょう、 ということで 1.8系と 1.9系を 共存させる方法を考えてみました
コマンドプロンプトから ruby <スクリプト名> として実行した場合
挙動を見ている限り パスが通った所に ruby.exeがあれば そのパスを起点にして動作していますよね
irb や gem なども同じですね
ということは、 1.8系 と 1.9系を 別の所にインストールして
その時その時に 環境変数の path を 切り替えれば おそらく うまく行くはずです
私の場合は ruby1.8 を c:\ruby に インストールしてますので
ruby1.9 は c:\ruby19 に インストール(というかそこに最新版を解凍)しました
普段は 1.8系に対して 関連付けしているし パスが通っているので
コマンドプロンプトを開いた直後 や 単純に実行させたり した場合は 1.8系で実行されます
そこで まずは 1.9系モードに移行する 「ruby19.bat」という .batファイルを作ってみました
また 私の場合は アーカイバー系の.dllや migemo.dll等の DLLファイルや このバッチファイル等は
c:\windows には コピーせずに、 D:\___DLL___\ に置いて そこにパスを通してますので
そこにも パスを通しています
そして 今のモードが きちんと分かるように プロンプトも変更させてます
↓ 実行結果 (実行後 pathを表示させています)
今回の例では あくまで コマンドプロンプトから実行する場合に限られます
そして コマンドプロンプトを 終わらせれば
batファイルで設定した パス や プロンプト設定などは 破棄されますので
そのつど ruby19 を実行する必要があります
ただ とりあえず 1.9系を勉強出来ればいいや って感じの人にとっては
こんな感じの仕様の方が やりやすいかな?
だから 「最新の機能も勉強したいけど 1.8系のスクリプトが動かなくなるのは 嫌だな・・・」と
思う人も少なくないでしょう、 ということで 1.8系と 1.9系を 共存させる方法を考えてみました
コマンドプロンプトから ruby <スクリプト名> として実行した場合
挙動を見ている限り パスが通った所に ruby.exeがあれば そのパスを起点にして動作していますよね
irb や gem なども同じですね
ということは、 1.8系 と 1.9系を 別の所にインストールして
その時その時に 環境変数の path を 切り替えれば おそらく うまく行くはずです
私の場合は ruby1.8 を c:\ruby に インストールしてますので
ruby1.9 は c:\ruby19 に インストール(というかそこに最新版を解凍)しました
普段は 1.8系に対して 関連付けしているし パスが通っているので
コマンドプロンプトを開いた直後 や 単純に実行させたり した場合は 1.8系で実行されます
そこで まずは 1.9系モードに移行する 「ruby19.bat」という .batファイルを作ってみました
@echo off cls prompt ruby19mode$s:$s$l$p$g$_$g set path=C:\Program Files\ImageMagick-6.5.3-Q8;C:\Ruby19\bin;C:\WINDOWS;C:\WINDOWS\system32;D:\___DLL___;C:\Tcl\bin ruby -v echo.RMagickや Tkも 利用したいので 必要に応じて パスを通してます
また 私の場合は アーカイバー系の.dllや migemo.dll等の DLLファイルや このバッチファイル等は
c:\windows には コピーせずに、 D:\___DLL___\ に置いて そこにパスを通してますので
そこにも パスを通しています
そして 今のモードが きちんと分かるように プロンプトも変更させてます
↓ 実行結果 (実行後 pathを表示させています)
ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32] ruby19mode : <D:\> >path PATH=C:\Program Files\ImageMagick-6.5.3-Q8;C:\Ruby19\bin;C:\WINDOWS;C:\WINDOWS\s ystem32;D:\___DLL___;C:\Tcl\bin ruby19mode : <D:\> >ついでに 1.8系モードに戻れるようにも 「ruby18.bat」という .batファイルも作りました
@echo off cls prompt ruby18mode$s:$s$l$p$g$_$g set path=C:\Program Files\ImageMagick-6.5.3-Q8;C:\Ruby\bin;C:\WINDOWS;C:\WINDOWS\system32;D:\___DLL___;C:\Tcl\bin ruby -v echo.まぁ パスを 1.8系の所に変更させただけですね 笑)
今回の例では あくまで コマンドプロンプトから実行する場合に限られます
そして コマンドプロンプトを 終わらせれば
batファイルで設定した パス や プロンプト設定などは 破棄されますので
そのつど ruby19 を実行する必要があります
ただ とりあえず 1.9系を勉強出来ればいいや って感じの人にとっては
こんな感じの仕様の方が やりやすいかな?