2013年11月4日月曜日

Cygwin環境へのrbenv導入

Rubyの複数バージョンを併用するのに、いつのまにかrvmではなくrbenvを使う風潮が見えるので、手元環境で整えてみる。Macにはさくっと入ったが、Windows環境(Cygwin環境)ではいささか手間取ったので、メモ。

Cygwin版では1.9.x, 2.0.xはさくっと入ったが、1.8.7は失敗。ソースをいじれば、コンパイルできるんだが、rbenvの一連のシーケンスでどうやるのか分からんので、rbenvで任意のバージョンを切り替えて使えるならいっそSystem Defaultが1.8.7でもいいんじゃね?と思い、普通にソースからビルド。

これで1.8~2.0までひととおり使えるようになった。

git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/rucby-build
rbenv install 1.9.3-p448
rbenv install 2.0.0-p247
wget http://www.dnsbalance.ring.gr.jp/archives/lang/ruby/ruby-1.8.7-p358.tar.bz2
tar jxvf ruby-1.8.7-p358.tar.bz2
cd ruby-1.8.7-p358/
./configure; make
vim eval.c # longjmp, setjmp部分をコメント
vim gc.c # longjmp, setjmp部分をコメント
make
make test
make install
rbenv versions
rbenv local 1.9.3-p448
 → 1.9.3
benv local system
 → 1.8.7

 

1.8は捨てたいんだけど、過去のスクリプトを実行する際に環境さえあれば改修せずに実行できるので、なかなか捨てがたい。