Windowsで複数のRubyバージョンを使うならpik

rvmよりもpikが好き!

pik for osxがほしい!

[2011.03.05 追記:pik 0.2.8]

Rubyがインストールされていない場合

Ruby+pikインストーラー[msi]でインストール

msiexec /i http://github.com/downloads/vertiginous/pik/pik-0.2.8.msi

Rubyがインストールされている場合

pik[gem]をインストール
gem install pik

pikを使う

pikを(インストール先を指定して)インストール
pik_install c:\pik

pathが通っているかを確認

path

pathが通っていなかったら通してね

Rubyのインストール先を指定

Rubyのインストール先も指定できます

pik config install_dir=c:\pik
Ruby各バージョンの簡単インストール

簡単インストール可能なRubyを確認
Ruby,JRuby,IronRubyなどなど

pik ls -r

使いたいバージョンをインストール

pik install Ruby 1.9.2-p180
pik install Ruby 1.8.7-p334
インストール済バージョンをpikで管理

pikの簡単インストールを利用せずにインストールしたRubyも
pik管理下にできます

pik add [<追加したいRubyフォルダのパス>\bin]

DevKit

DevKitのインストール先を指定

DevKitのインストール先も指定できます

pik config devkit=c:\pik
pik devkit update
DevKitをインストール
pik install devkit
インストール済のRubyを一覧表示
pik ls -v

Gem

Ruby切り替え

Ruby1.8.7p334に変更

pik 187
Gemアップデートとインストール

ここでは便利なtappをインストール

gem update --system
gem install tapp --no-rdoc --no-ri
gem list
Ruby切り替え

Ruby1.9.2p180に変更

pik 192
Gemの同期

Ruby1.9.2p180のGemをRuby1.8.7p334のGemと同じにする

gem list
pik gemsync
[コピー元を選択 例:2. 187: ruby 1.8.7(2011-02-18 patchlevel 334)]
? 2
gem list
Gemの一括インストール

全てのインストール済RubyにGemをインストールできる

pik gem list
pik gem install rspec --no-rdoc --no-ri

pikその他

一括実行

色々あります

pik bench fib.rb
pik ruby fib.rb
pik rb -e 'puts RUBY_VERSION'
pik run PATH

fib.rb

cache = { 0 => 0, 1 => 1 }
fib = lambda {_fib_ = lambda {|n| cache[n] ||= _fib_[n-2] + _fib_[n-1]}}.call
(1..10000).each { |e| "#{fib[e] }" }

pik bench fib.rbを実行してみた

pik bench fib.rb
IronRuby 1.1.2.0 on .NET 4.0.30319.1

Rehearsal ------------------------------------------------------------
** benchmarking 'fib.rb'   3.447622   0.000000   3.447622 (  3.437196)
--------------------------------------------------- total: 3.447622sec

                               user     system      total        real
** benchmarking 'fib.rb'   3.416422   0.000000   3.416422 (  3.409195)

jruby 1.6.0.RC2 (ruby 1.8.7 patchlevel 330) (2011-02-09 5434c72) (Java HotSpot(TM) Client VM 1.6.0_24) [Windows 7-x86-java]

Rehearsal ------------------------------------------------------------
** benchmarking 'fib.rb'   6.419000   0.000000   6.419000 (  6.401000)
--------------------------------------------------- total: 6.419000sec

                               user     system      total        real
** benchmarking 'fib.rb'   6.328000   0.000000   6.328000 (  6.328000)

ruby 1.8.7 (2011-02-18 patchlevel 334) [i386-mingw32]

Rehearsal ------------------------------------------------------------
** benchmarking 'fib.rb'   4.804000   0.000000   4.804000 (  4.802275)
--------------------------------------------------- total: 4.804000sec

                               user     system      total        real
** benchmarking 'fib.rb'   4.789000   0.016000   4.805000 (  4.825276)

ruby 1.9.2p180 (2011-02-18) [i386-mingw32]

Rehearsal ------------------------------------------------------------
** benchmarking 'fib.rb'   2.215000   0.000000   2.215000 (  2.220127)
--------------------------------------------------- total: 2.215000sec

                               user     system      total        real
** benchmarking 'fib.rb'   2.231000   0.000000   2.231000 (  2.231127)







[2010.06.27]
gem install pik --platform x86-mswin32
pik_install c:\pik
※ pathは通しておきましょう
pik -v # pik 0.2.8
pik ls -r
pik install IronRuby 1.0v4 # need .NET Framework4
pik install Ruby 1.9.1-p378-1
pik install Ruby 1.9.2dev-preview3-1
※ 7-Zipでコケたら
http://sourceforge.net/projects/sevenzip/files/7-Zip/4.65/7za465.zip/downloadを解凍して
pikのディレクトリの7za.exeを上書きする