(Ubuntu)(Ubuntu11.04)(ruby)(rvm)(Ubuntu 11.04 に rvm で ruby のマルチバージョン環境を構築してみた)

過去に書いた Ubuntu10.10でのrvm構築の記事は → http://d.hatena.ne.jp/morakana/20110103/1294084275


 前回の記事は Ubuntu10.10にrvmを入れる方法を書いてみましたが
今回は VirtualBox上にインストールした Ubuntu11.04に対して rvmを入れてみましたので
その方法を 自分用のメモがてらに書いてみます

 まず git-core と curl が 入ってないならインストールします
前回の記事同様 私はaptitudeでインストールしているので
aptitudeのインストールから書くとこんな感じになりますね
sudo apt-get update
sudo apt-get install aptitude
sudo aptitude update
sudo aptitude install git-core curl
updateは必要ないかもしれませんが一応念のためにやっておきます

 続いて端末上で以下を実行し rvmをインストールします
[]bash < <(curl -s https://rvm.beginrescueend.com/install/rvm )[]
前回記事とはアドレスが違いますが
https://rvm.beginrescueend.com/rvm/install/
の「Installing the latest release version in git:」の所をコピペしました

 前回の記事では ここで ~/.bashrc の 末尾に
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
の一行を追加しましたが、今回はこの時点ですでに 末尾に書かれていました
おそらく rvmをインストールした時に自動的に設定された物だと思われます

 一旦端末を終わらせ もう一度起動し
端末上で rvm notes を実行してnotesを表示させます
ここで notesが表示されない場合はここまでの手順で何か失敗しています

 一応notesを最後まで流し読みし、必要なパッケージをインストールします
参照するところは「For Ruby (MRI & ree)」の部分です
apt-getでインストールする方法が書いてあります(相変わらず sudoが抜けてますが 笑)が
私の場合は aptitude
sudo aptitude install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev
のように実行しました

 続いてrubyのインストールになります、前回の記事同様
rvm install 1.9.2
rvm install 1.8.7
などとして各バージョンのrubyをインストールします

 続いてデフォルトで使うバージョンを指定します、1.9.2なら
rvm use 1.9.2 --default
ですね

 前回の記事と同じく、この段階では /usr/bin/ruby が存在しないので
~/.rvm/bin/ruby に対するシンボリックリンクを /usr/bin/ruby に作ります
sudo ln -s ~/.rvm/bin/ruby /usr/bin/
これで rubyスクリプトの一行目を 「#!/usr/bin/ruby -Ku」 のようにしていても
デフォルトで指定されたバージョンのrubyで実行されるようになります

 前回の記事では ~/.rvm/bin/rubyシンボリックリンクだったのですが
今回のは シェルスクリプトで書かれているようです
おそらく デフォルトを切り替えた直後に端末を一旦終わらせずにそのまま使おうとすると
うまくバージョンが切り替わらない時があったので
その問題の改善の意味もあるんじゃないでしょうかね(違うかもしれませんが 笑)