RVMを使ってRubyの環境構築をしたよ

zomです。 仕事の都合上、ついにPHPJavaScript以外の言語にも手を出すことになりました。 その言語とは、Rubyです。ここ数年でRailsの影響もあってかホットになった言語という認識があります。 去年から習得し始めた先輩曰く「JavaScriptができれば直感的に分かると思う」とのことでした。 自分、どちらかと言うとJavaScript苦手なんですけどね。

というわけで、特殊なエラーにはまったりもしたので備忘録的に環境構築の手順についてメモメモ。 まずはRVM(Ruby Version Manager)のインストールから始めます。 基本的にはコチラに書いてある手順を試せばいい感じです。 ただし、rootやsudoで作業しないこと。通常のユーザでやることが望ましいです。 通常のユーザで作業を行うと$HOME/.rvmというディレクトリができますが、rootで作業をしてしまうと/usr/local/rvmディレクトリができます。 こうなると、なんかよく分からないけれども厄介なことになります。 たぶんrootでやった際の手順云々も書いてあると思うのですが、読んでいません。それに手順を載せているサイト側も通常のユーザでやることを推奨しています。

ということで、簡潔にインストール手順を。

bash(※)でホームディレクトリにいきます。 ※zshだと一部正常に動かない場合がありますので。

$ cd ~
$ bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

これで前述のとおり、ホームディレクトリに./rvmができます。 これをシェルに読み込ませるため自分が使っているシェルに対して書き込みをしておきます。 上がbash、下がzshに書き込むやり方です。普通にエディタで開いて書き加えても問題ありません。

$ echo ' -s "$HOME/.rvm/scripts/rvm"  && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
$ echo ' -s "$HOME/.rvm/scripts/rvm"  && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.zshrc

で、sourceコマンドでシェルを読み直します。シェルに合わせてどちらかをやってください。

$ source ./.bash_profile
$ source ./.zshrc

それで

$ type rvm | head -1
rvm is a function

となればrvmを使うことができるようになっている証拠です。

$ rvm list known

これで使いたいrubyのバージョンを確認します。 [ ]内のものは省略してもOKというものです。たいていは最新安定版に[ ]が付いていることかと思います。 例えば使いたいのがruby1.9.3のp286なら…

$ rvm install ruby-1.9.3-p286

単に本流の最新版(2012/11/13現在)で良ければ

$ rvm install 1.9.3

これだけでインストールが開始されます。 自分のzshではなぜか途中で止まってしまいましたので、bashでやりました。 また、何か足りないものがあればyumでインストールするように促されますのでそれに従います。 インストールが終わったら、インストールされているか確認。

$ rvm list
rvm rubies

=* ruby-1.9.3-p286 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

こんな感じで表示されてRubyの種類・バージョンの前に「=*」がついていればOK。 この記号は上にも書いてある通り、現在使用しているRubyと、デフォルトのRubyを示しています。 というのも、rvmを使うと複数Rubyを同居させることができるので、今のステータスをこれで把握する、といった感じです。

デフォルトでそのrubyを使いたいのであればdefaultの設定をしておくといいです。

$ rvm install ruby-1.9.3-p194 // 試しに他のバージョン入れる
// 中略
Install of ruby-1.9.3-p194 - #complete
$ rvm use ruby-1.9.3-p194 --default
Using /home/[user]/.rvm/gems/ruby-1.9.3-p392
$ rvm list
rvm rubies

=* ruby-1.9.3-p194 [ x86_64 ]
   ruby-1.9.3-p286 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

こう表示されればOKです。 --defaultオプションを外せば、今のセッションに限った設定になります。

ついでにRSpecもインストールしておくとGood。

gem install rspec --no-rdoc --no-ri

--no-rdoc --no-ri オプションはドキュメントをインストールしない設定です。 rdoc はwebで見れるドキュメントで、riコマンドはコマンドラインからそれを参照できます。 が、普通にブラウザで見れるので要らない設定にしています。ブラウザで見たい場合は↓です。 http://rspec.info/

ちなみにRVMのlistで表示される一覧は都度、最新のものを取ってくるわけではないらしく、rvmコマンドが使えるようになったタイミングのままだそうです。もしRubyの新しいバージョンが出たらlistの更新をかけてあげる必要があります。 その方法はrvm getコマンドを使うこと。

rvm get stable

詳しくはrvm help getをやると出てきますが、rvmをどの状態にするか?という選択ができます。 特にこだわりがない場合はrvm get stableとすれば安定版のrvmになりますので、それが良いと思います。 そうして改めてrvm list knownで内容を確認し、rvm install ...とやっていけば最新版に保つことができます。 もちろんバージョンが違えば、動作が保証されていないのでうかつにやれませんが。

以上でirbとかもすでにインストールされているのでもう開発環境は整ってます。ちょー簡単ですね!