(Ubuntu)(Ubuntu12.04)(ruby)(rvm)(Ubuntu 12.04 に rvm で ruby のマルチバージョン環境を構築してみた)
これまでと同じくVirtualBoxの環境下のUbuntuにrvmをインストールしてみました
過去のバージョンはこちらを参照の事です
Ubuntu10.10 → http://d.hatena.ne.jp/morakana/20110103/1294084275
Ubuntu11.04 → http://d.hatena.ne.jp/morakana/20110716/1310797968
今回は https://rvm.io/rvm/install/ に書いてある事を参考にしてインストールしてみました
とはいえ、いつもの通りに「git-core」と「curl」が必要なので
まだインストールが出来てない場合は、端末上で
(aptitudeを使っていますが apt-getでも特に問題は無いかと思います)
続いて 先ほど書いた https://rvm.io/rvm/install/ を参考にして、端末上で
続いて、端末上で
そのまま続けて、端末上で
必要なのは「# For Ruby / Ruby HEAD (MRI, Rubinius, & REE), install the following:」の所なので
そこを適当に読み変えて
とりあえず一旦端末を閉じて再起動し
あとはいつものように
(「rvm use」を使おうとするとエラーが発生する場合は次の項を参照してください)
(「rvm use」を使おうとするとエラーが発生する場合にこの設定をしてください)
続いて、 https://rvm.io/rvm/install/ に説明には書いてありませんが
「rvm use ・・・」を使おうとするとエラーが発生して
使用するrubyのバージョンを指定できなくなる原因を潰します
「~/.bashrc」をテキストエディタで開き
もう一度端末を終わらせ、再起動し「rvm use ・・・」を試してください
これでもうまく行かない場合は違う方法を探してみてください
あとは、この時点では /usr/bin/ruby が存在しないので
スクリプトの一行目が
これで --defaultで指定したバージョンで実行されるようになります
さらに応用として各バージョンに対応するために
スクリプトの一行目を
バージョン依存するスクリプトの場合はこちらで指定した方がラクかな?と 笑)
過去のバージョンはこちらを参照の事です
Ubuntu10.10 → http://d.hatena.ne.jp/morakana/20110103/1294084275
Ubuntu11.04 → http://d.hatena.ne.jp/morakana/20110716/1310797968
今回は https://rvm.io/rvm/install/ に書いてある事を参考にしてインストールしてみました
とはいえ、いつもの通りに「git-core」と「curl」が必要なので
まだインストールが出来てない場合は、端末上で
[]sudo apt-get update[] []sudo apt-get install aptitude[] []sudo aptitude update[] []sudo aptitude install git-core curl[]などのようにしてインストールしておきます
(aptitudeを使っていますが apt-getでも特に問題は無いかと思います)
続いて 先ほど書いた https://rvm.io/rvm/install/ を参考にして、端末上で
curl -L get.rvm.io | bash -s stableを実行して「rvm」をインストールします
続いて、端末上で
source ~/.rvm/scripts/rvmを実行してrvm関係の環境設定をロードします
そのまま続けて、端末上で
rvm requirementsを実行して、必要なライブラリなどを調べます
必要なのは「# For Ruby / Ruby HEAD (MRI, Rubinius, & REE), install the following:」の所なので
そこを適当に読み変えて
[]sudo aptitude install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion[]などとして実行します、これで必要なライブラリなどがインストールされます
とりあえず一旦端末を閉じて再起動し
あとはいつものように
rvm install 1.8.7 rvm install 1.9.2 rvm install 1.9.3等々として 使いたいバージョンをインストールし
rvm use 1.8.7 --defaultなどとしてデフォルトで使用するバージョンを指定します
(「rvm use」を使おうとするとエラーが発生する場合は次の項を参照してください)
(「rvm use」を使おうとするとエラーが発生する場合にこの設定をしてください)
続いて、 https://rvm.io/rvm/install/ に説明には書いてありませんが
「rvm use ・・・」を使おうとするとエラーが発生して
使用するrubyのバージョンを指定できなくなる原因を潰します
「~/.bashrc」をテキストエディタで開き
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scriptingの行の後ろに
source "$HOME/.rvm/scripts/rvm"の一行を追加します
もう一度端末を終わらせ、再起動し「rvm use ・・・」を試してください
これでもうまく行かない場合は違う方法を探してみてください
あとは、この時点では /usr/bin/ruby が存在しないので
スクリプトの一行目が
#!/usr/bin/ruby -Kuなどであっても従来どおり実行できるように、端末上で
sudo ln -s /home/<ユーザー名>/.rvm/bin/ruby /usr/bin/rubyとしてリンクを貼ります
これで --defaultで指定したバージョンで実行されるようになります
さらに応用として各バージョンに対応するために
sudo ln -s /home/<ユーザー名>/.rvm/bin/ruby-1.8.7-p<パッチ番号> /usr/bin/ruby187 sudo ln -s /home/<ユーザー名>/.rvm/bin/ruby-1.9.3-p<パッチ番号> /usr/bin/ruby193等として各バージョンのリンクを作っておけば
スクリプトの一行目を
#!/usr/bin/ruby187 -Kuや
#!/usr/bin/ruby193 -Ku等とすることで実行するrubyのバージョンを指定できるようになります
バージョン依存するスクリプトの場合はこちらで指定した方がラクかな?と 笑)