UbuntuにRVMを使ってRuby環境を構築する
久しぶりの更新です。Ruby1.8.6系、Ruby1.8.7系、Ruby1.9.2系をそれぞれ切り換えて利用することが多くなってきたので、環境の整理もかねてRVMを使ってRuby環境を構築し直してみました(MacのTextmateでrvmを使う方法も付記しました)。
環境は以下の通りです
- Ubuntu 10.04.3 LTS
- RVM 1.8.3
1.まずはrvmを作る為に必要なツールを入れておきます
$sudo apt-get install git-core $sudo apt-get install curl
ほかにもreadlinesが入っていないのであれば入れておいて下さい。
2.次にRVMをインストールします
rvmの環境は~/.rvm配下に作られるのがディフォルトのようですので、先に環境を作っておきます。rvm経由でインストールしたRubyも同じフォルダ配下に入っていきます。
$ mkdir -p ~/.rvm/src/ $ cd ~/.rvm/src $ git clone --depth 1 git://github.com/wayneeseguin/rvm.git $ cdrvm $ ./install
rvmを定義する環境変数が.bashtcの最終行に追加されます。なんらかの場合で無い時には、以下の内容を.bashrcか.bash_profileに追加してください
if [[ -s /ホームディレクトリまでのパス/.rvm/scripts/rvm ]] ; then source /ホームディレクトリまでのパス/.rvm/scripts/rvm ; fi
インストールが完了したら環境ファイルを読み込んで設定完了です。
$source ~/.bashrc $rvm -v rvm 1.8.3 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]
3.次にRubyをインストールしていきます
まずインストール可能なrubyの一覧を表示して確認します。
$rvm list known
ここでは、MRI Rubiesから1.8.7[-p352]と1.9.2[-290]をインストールします。[]の中は省略可能です
$rvm install 1.8.7 $rvm install 1.9.2
インストールされたRubyは以下のフォルダに入っています
~/.rvm/rubies
これで環境構築が完了です。
4.RVMでよく使うコマンド群を整理してみました
- 利用するRubyバージョンの指定
- $rvm use XXXXX (例:$rvm use 1.8.7)
- 特定のバージョンをディフォルトで動作させる
- $rvm use XXXXX --default
- インストール済みのRubyをリスト表示
- $rvm list
- インストール可能なRubyをリスト表示
- $rvm list known
- インストール可能なRubyリストを更新
- $rvm reload
- インストール済みのRubyを更新する
- $rvm upgrade 旧バージョン 新バージョン (例:$rvm upgrade ruby-1.9.2-p136 ruby-1.9.2-p180)
- rvm自身の更新
- $rvm get
- rvmのバージョン確認
- $rvm -v
- rvmのRubyを切り離してOS環境のRubyを使う
- $rvm system
5.cron等RVM以外の環境からRubyを呼び出す場合
次のTextmateの場合と似ていたので割愛していたので、あまり触れられていないようなので書いておきます。
cron等からRVMでインストールした配下のRubyを呼び出すと直接rubyモジュールをコールしてもgem等が正常に見えずにトラブルが発生します。
こうした事を解決するためにwrapperコマンドを使います
$rvm wrapper XXXX ラップ名 (例:$rvm wrapper 1.8.7 cron)
このコマンドを入力すると指定したバージョンの環境設定が入ったシェルファイルができあがります。できるシェルファイルは~/.rvm/bin/ラップ名_ruby (ruby以外にirb等も出来てます)となっています。
このラップしてできたファイルをcron等で呼び出す元のrubyとして指定することにより特定の環境でrubyが動作します。
6.Mac環境でTextmateと一緒に使う場合のおまけです
textmateからrvm配下のrubyを呼び出す用のシェルを作る
$rvm wrapper バージョン textmate 例)$rvm wrapper 1.8.7 textmate
(~/.rvm/bin/textmate_rubyというファイルができるのでtextmateの環境設定でTM_RUBYを追加しそのパスを入れる)
以後は利用環境を切り替える時にuseコマンドとwrapperコマンドを併用すればOK
$rvm use 1.9.2 $rvm wrapper 1.9.2 textmate
駆け足ですがRVMの環境とよく使うコマンドをまとめてみました。RVMのバージョンアップに伴って変更となるものも多いと思いますので、動かない場合は公式サイトを確認してください - http://beginrescueend.com/