Ruby - 「pik」で複数バージョン共存!

Updated:


今回は、Windowsで複数のバージョンのRubyを共存させる「pik」というツールを導入してみました。 (ちなみに、Linuxなら「rvm」というツールを使用するらしい)

現在、当方はWindowsXPでは「Ruby1.9.2(mswin32)」を主に使用しながら、時々「1.9.1」や「1.8.7」を使用しています。(環境変数は固定でインストールフォルダ名を変更して対応)

それほど面倒な作業ではないのですが、「pik」というツールを使えば便利であることを知り早速導入してみました。

以下が導入記録です。

導入記録

【前提条件】

  • OSはWindowsXP(SP3)
  • 「Ruby1.9.2(mswin32)」を「C:\Ruby192」にインストール済み。
  • 「Ruby1.9.1(mswin32)」を「C:\Ruby191」にインストール済み。
  • 「Ruby1.8.7(mswin32)」を「C:\Ruby187」にインストール済み。

「gem」で「pik」インストール

「pik」は既存のRuby環境に「gem」でインストールします。 (アーカイブをダウンロードしてインストールする方法もあるようです) コマンドプロンプトで以下のようにする。

↓念のため、現在のRubyバージョンを確認しただけ

>ruby -v
ruby 1.9.2p136 (2010-12-25) [i386-mingw32]

↓「gem」でRubyに「pik」をインストール
>gem install pik
・・・(途中省略)・・・
Successfully installed pik-0.2.8
1 gem installed
Installing ri documentation for pik-0.2.8...
Installing RDoc documentation for pik-0.2.8...

Windowsに「pik」インストール

↓「pik」用ディレクトリを作成
>mkdir "C:\Program Files\pik"

↓Windowsに「pik」をインストール
>pik_install "C:\Program Files\pik"
Thank you for using pik.

mkdir -p C:\Program Files\pik
mkdir -p C:\Documents and Settings\masaru/.pik
Installing to C:\Program Files\pik

cp C:/Ruby192/lib/ruby/gems/1.9.1/gems/pik-0.2.8/tools/pik_runner.exe C:\Program Files\pik
cp C:/Ruby192/lib/ruby/gems/1.9.1/gems/pik-0.2.8/tools/pik.bat C:\Program Files\pik
cp C:/Ruby192/lib/ruby/gems/1.9.1/gems/pik-0.2.8/tools/pik.ps1 C:\Program Files\pik

creating C:\Documents and Settings\masaru/.pik/.pikrc

pik is installed

The directory you installed to is not in the sytem path.
C:\Program Files\pik

You will need to add it.

if you want to use pik with git bash, add the following line to your ~/.bashrc:

[[ -s $USERPROFILE/.pik/.pikrc ]] && source $USERPROFILE/.pik/.pikrc

環境変数「PATH」編集

上のメッセージにあるように環境変数「PATH」に”C:\Program Files\pik”を追加する。 システムのプロパティ画面からシステム環境変数の「path」に以下を追加する。

;C:\Program Files\pik

マシン再起動

変更した環境変数を有効化するためにマシンを再起動する。

設定

コマンドプロンプトで作業。

↓既存のメイン環境を追加
>pik add
This version has already been added.  ← ?既に追加されいた。

↓インストール済みの他の環境「Ruby1.9.1」を追加
>pik add C:\Ruby191\bin  ← 「ruby.exe」のあるディレクトリを指定。
** Adding:  191: ruby 1.9.1p430 (2010-08-16 revision 28998) [i386-mingw32]
Located at:  C:\Ruby191\bin

↓インストール済みの他の環境「Ruby1.8.7」を追加
>pik add C:\Ruby187\bin  ← 「ruby.exe」のあるディレクトリを指定。
** Adding:  187: ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32]
Located at:  C:\Ruby187\bin

↓設定確認(現在有効のRubyに「*」印)
>pik list
187: ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32]
191: ruby 1.9.1p430 (2010-08-16 revision 28998) [i386-mingw32]
* 192: ruby 1.9.2p136 (2010-12-25) [i386-mingw32]

環境の変更

コマンドプロンプトで別のバージョンの「Ruby」に変更。

↓Ruby1.9.1に変更
>pik sw 191
↓同一バージョンで複数のパッチレベルが存在する場合はパッチレベルも指定する。
>pik sw 191 p430
※「pik switch」、「pik use」でもOK!

↓確認
>ruby -v
ruby 1.9.1p430 (2010-08-16 revision 28998) [i386-mingw32]

その他

今回の作業は以上ですが、今回の作業以外で記録しておくべき事項を以下に記述。

「pik」でインストールできる環境の一覧

>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.5.6: http://jruby.org.s3.amazonaws.com/downloads/1.5.6/jruby-bin-1.5.6.zip
1.6.0.RC2: http://jruby.org.s3.amazonaws.com/downloads/1.6.0.RC2/jruby-bin-1.6.0.RC2.zip
Ruby:
1.8.7-p302: http://rubyforge.org/frs/download.php/72087/ruby-1.8.7-p302-i386-mingw32.7z
1.8.7-p330: http://rubyforge.org/frs/download.php/73720/ruby-1.8.7-p330-i386-mingw32.7z
1.9.1-p429: http://rubyforge.org/frs/download.php/71496/ruby-1.9.1-p429-i386-mingw32.7z
1.9.1-p430: http://rubyforge.org/frs/download.php/72076/ruby-1.9.1-p430-i386-mingw32.7z
1.9.2-p0: http://rubyforge.org/frs/download.php/72160/ruby-1.9.2-p0-i386-mingw32.7z
1.9.2-p136: http://rubyforge.org/frs/download.php/73723/ruby-1.9.2-p136-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

「pik」で「Ruby」がインストールできる

インストール済みの環境だけでなく、「pik」で後から「Ruby」がインストールできる。 例えば、上記のリストないの「Ruby」−「1.8.7-p302」をインストールする場合、以下のようにする。

>pik install ruby -v 1.8.7-p302

子プロセスのみで有効

「pik」で変更した環境は子プロセスのみでしか有効にならない。 つまり、DOS窓(コマンドプロンプト)で環境を変更後DOS窓を閉じ、再度DOS窓を開いた場合は元に戻ってしまう。


以上です。





 

Sponsored Link

 

Comments