複数のRubyを切り替えられるようにする
Ruby1.9をメインで使いつつ、1.8系も準備しておきたかったので併存させられる環境を作ってみた。
OS: Ubuntu 9.04 Server Edition
Rubyのソースを用意する
Subversionで落としてくる。当然trunk。安定とか知りません。
$ svn co http://svn.ruby-lang.org/repos/ruby/trunk ruby
$ svn co http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8 ruby1.8
必要なライブラリを入れる
OpenSSLとconfigure作成用のautoconf
bisonがどうとかいうエラーが出るので、それも入れておく
$ sudo apt-get install libssl-dev $ sudo apt-get install autoconf $ sudo apt-get install bison
makeする
/local/ruby の下にバージョン番号のディレクトリを作成して、そこに入れる。
プログラムにはバージョン番号を付けておく
$ cd ruby $ autoconf $ ./configure --prefix=/local/ruby/<VERSION> --program-suffix=<VERSION> --with-readline-dir=/local/ruby/<VERSION> $ make $ make test $ sudo make install
シンボリックリンクを張る
aliasを付けてもいいけど、gemとか他のプログラムが /usr/bin/ruby とかを見ている場合があるので、シンボリックリンクを作っておく。
投げやりなシェルスクリプトにしてみる。
$ less switch_ruby.sh #!/bin/sh ORG_PATH=/local/ruby/$2/bin PREFIX=/usr/local/bin for NAME in ruby gem irb rdoc ri do ln -s $ORG_PATH/$NAME$1 $PREFIX/$NAME echo "/usr/bin/$NAME linked @ $ORG_PATH/$NAME$1" done $ ./switch_ruby.sh 1.9 1.9.1