Ruby/Windows7で1.8と1.9環境を同居させる

Ruby/Windows7で1.8と1.9環境を同居させる

バージョンと製造年月日

  • 2010-08-11

1.8と1.9の同居どころか、さまざまなRuby実装を簡単に切り替えれるツールPikがある

Pikというものを使えば環境を簡単に切り替えられるらしい

Pikのインストール

Downloads for vertiginous's pik - GitHub ここらへんからダウンロードする。現状の最新バージョンはver0.2.8

gem環境からインストールしろという解説が多いが、ベースをプレーンな状態にしたいのでmsiのインストーラーバージョンを使う

ダブルクリックするだけであっさり完了。 メッセージでインストールディレクトリにパスを通してくれてたみたいなのでここからは解説どおりにする。

Windowsネイティブ実装のRuby1.8.6のインストール

定番のwindowsネイティブ実装のRuby1.8.6をインストールする。 こいつはPikを駆動させるために使うので単にDownloadsここからダウンロードしていれる

インストーラーで楽チン。一応確認

ruby --version
ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]

オッケー

Pikの管理に1.8.6を加える

現状rubyコマンドで起動できるrubyをPikの管理に加える。

サブコマンドaddを引数なしで起動すると現状のruby(pikを駆動している?)が登録される。

pik add
** Adding:  186: ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]
 Located at:  D:\Ruby186\bin

登録されたかどうか確認してみる

pik list
 * 186: ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]

おー!186として登録された。続いて1.9.1も登録する

1.9.1をインストールしてPikの管理に加える

まずpikコマンドでインストールできるrubyの一覧を得る

 pik list -r
 
 DevKit:
  3.4.5r3: http://rubyforge.org/frs/download.php/66888/devkit-3.4.5r3-20091110.7z
 IronRuby:
  0.3.0: http://rubyforge.org/frs/download.php/53552/ironruby-0.3.0.zip
  0.5.0: http://rubyforge.org/frs/download.php/57126/ironruby-0.5.0.zip
  0.6.0: http://rubyforge.org/frs/download.php/59717/ironruby-0.6.0.zip
  0.9.0: http://rubyforge.org/frs/download.php/61382/ironruby-0.9.0.zip
  0.9.1: http://rubyforge.org/frs/download.php/64504/ironruby-0.9.1.zip
  0.9.2: http://rubyforge.org/frs/download.php/66606/ironruby-0.9.2.zip
  "1.0": http://rubyforge.org/frs/download.php/70179/ironruby-1.0.zip
  1.0-rc1: http://rubyforge.org/frs/download.php/67955/ironruby-1.0-rc1.zip
  1.0-rc2: http://rubyforge.org/frs/download.php/69180/ironruby-1.0-rc2.zip
  1.0.0rc: http://rubyforge.org/frs/download.php/69853/ironruby-1.0.0rc.zip
  1.0rc3: http://rubyforge.org/frs/download.php/69665/ironruby-1.0rc3.zip
  1.0v4: http://rubyforge.org/frs/download.php/70181/ironruby-1.0v4.zip
 JRuby:
  1.4.1: http://jruby.org.s3.amazonaws.com/downloads/1.4.1/jruby-bin-1.4.1.zip
  1.5.1: http://jruby.org.s3.amazonaws.com/downloads/1.5.1/jruby-bin-1.5.1.zip
 Ruby:
  1.8.6-p398-2: http://rubyforge.org/frs/download.php/71102/ruby-1.8.6-p398-i386-mingw32-2.7z
  1.8.7-p249-1: http://rubyforge.org/frs/download.php/71081/ruby-1.8.7-p249-i386-mingw32-1.7z
  1.8.7-p299: http://rubyforge.org/frs/download.php/71493/ruby-1.8.7-p299-i386-mingw32.7z
  1.9.1-p378-1: http://rubyforge.org/frs/download.php/71082/ruby-1.9.1-p378-i386-mingw32-1.7z
  1.9.1-p429: http://rubyforge.org/frs/download.php/71496/ruby-1.9.1-p429-i386-mingw32.7z
  1.9.2-rc1: http://rubyforge.org/frs/download.php/71498/ruby-1.9.2-rc1-i386-mingw32.7z
  1.9.2dev-preview3-1: http://rubyforge.org/frs/download.php/71175/ruby-1.9.2dev-preview3-i386-mingw32-1.7z

こんな結果が出た。1.9.1のp429をインストールしてみる

 pik install ruby -v 1.9.1-p429

 pik 0.2.8
 ** Downloading:  http://rubyforge.org/frs/download.php/71496/ruby-1.9.1-p429-i38
 6-mingw32.7z
   to:  C:\Users\hoge\.pik\downloads\ruby-1.9.1-p429-i386-mingw32.7z
 
 ruby-1.9.1-p429-i386-min...7z: 100% |oooooooooo|   4.8MB/  4.8MB Time: 00:00:34
 
 You need the 7zip utility to extract this file.
 Would you like me to download it? (yes/no)  |yes|
 yes
 ** Downloading:  http://downloads.sourceforge.net/sevenzip/7za465.zip
   to:  C:\Users\hoge\.pik\downloads\7za465.zip
 
 7za465.zip: 100% |ooooooooooooooooooooooooooooo| 352.5KB/352.5KB Time: 00:00:00
 
 ** Extracting:  C:\Users\hoge\.pik\downloads\ruby-1.9.1-p429-i386-mingw32.7z
 
   to:  C:\Users\hoge\.pik\rubies\Ruby-191-p429
 done

 ** Adding:  191: ruby 1.9.1p429 (2010-07-02 revision 28523) [i386-mingw32]
  Located at:  C:\Users\hoge\.pik\rubies\Ruby-191-p429\bin

って感じで入った。確認してみる。

 pik list

 * 186: ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]
   191: ruby 1.9.1p429 (2010-07-02 revision 28523) [i386-mingw32]

切り替えてみる

現状

 pik use 186
 ruby --version
 ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]
191
 pik use 191
 ruby --version
 ruby 1.9.1p429 (2010-07-02 revision 28523) [i386-mingw32]

お~!切り替わっている

じゃあirbみたいなツールはどうだ

 pik use 191
 irb
 "hoge".size
 4
 "ほげ".size
 2

おー

 pik use 186
 irb
 "hoge".size
 4
 "ほげ".size
 4

おー

バージョンの切り替えは子プロセスのみに影響

バージョンの切り替えはコンピュータ中の全部にグローバルで影響が出るわけではなくグローバルでは最初からインストールされているrubyで動いていて、切り替えコマンドを打ち込んだプロセスから立ち上げたプロセスのみバージョンの切り替えが反映するみたいだ。

gemとかはどうなっている

これも環境ごとにバラバラで管理されていてgemコマンド自体がRubyのバージョンによって勝手に切り替わる。これも便利

参考サイト

タグ

ruby/install_together_ruby19_and_ruby18_in_windows7.txt · 最終更新: 2012-02-20 01:54 by ore