おいちゃんと呼ばれています

ウェブ技術や日々考えたことなどを綴っていきます

Mac に RVM で Ruby 1.9.2 と Rails 3.2.1 をインストールした

先日、MacSnow Leopard)に、Snow Leopard の Rails が消えていたが、おかげで gem search | list | query の違いがわかった で書いたとおり、Rails 2.3系の最新版 2.3.14 を入れました。

が、いろいろあって、結局、Rails の最新版 3.2.1 を入れることにして、併せて Ruby のバージョンも、これまで 1.8.7 を使っていましたが、1.9.2 をインストールしました。

要は、下記の 2つの環境をつくって、用途に合わせて切り換えて使おうというものです。

-Ruby 1.8.7 -- Rails 2.3.14 -Ruby 1.9.2 -- Rails 3.2.1 <<

メモしておきますので、よろしければ参考にしてください。

**Mac に RVM で Ruby 1.9.2 と Rails 3.2.1 をインストールした

+どうして今まで古いバージョンを使っていたのか? +Ruby 1.8.7 から 1.9.2 への乗り換え +Ruby の複数のバージョンを使い分ける RVM +RVM のインストール +Ruby 1.9.2 のインストール +Ruby のバージョンを 1.9.2 に切り換える +Rails 3.2.1 のインストール +Ruby のバージョンを 1.8.7 に戻す方法 +Ruby 1.9.2 の環境をデフォルトにする <<

*1. どうして今まで古いバージョンを使っていたのか?

というか、どうして今まで 2.3系を使っていたかというと、ちょっといま、サササっとつくってしまいたいサービスがありまして、新しいのに手を出すよりも、使い慣れているバージョンを選んだほうが早くつくれるだろうという判断でした。

しかし、いざ、久しぶりに Rails を使ってみると、

-Rake のバージョンが合わなかったり(バージョンを下げる必要がでた) -最近は、ウェブや本の情報が 3系のものばっかりだったり -やりたいことを実現するには、2.3系だとプラグイン入れたりしないといけないけど、3.1以降だったらそのままで OK だったり

ということで、結局、3系使ったほうが早いじゃんということになりまして。

愛用してきた Rails の参考書も買い直しましたよ。

RailsによるアジャイルWebアプリケーション開発 第4版

RailsによるアジャイルWebアプリケーション開発 第4版

*2. Ruby 1.8.7 から 1.9.2 への乗り換え

Ruby 1.9 では、1.8 よりもかなり速くなったといわれていますが、僕が今やろうとしている文字列の処理に関していえば、あまり処理速度に差はないようです。

-Rubyist Magazine - Ruby 1.9 で Web アプリを想定したベンチマークをとってみた -「Ruby 1.9は1.8より平均5倍速い」、YARV笹田氏 − @IT

とはいっても、前述の Rails の参考書によると、Rails 4.0 では Ruby 1.8.7 はサポートされないそうです。また、scaffold で用いられるハッシュ構文が、1.8.7 と 1.9.2 では違うみたいなので、これを機に 1.9.2 に乗り換えることにしました。

*3. Ruby の複数のバージョンを使い分ける RVM

ただ、まだ 1.9.2 に対応していないライブラリもあるかもしれないし、1.8.7 の環境も残しておきたかったので、Ruby の複数のバージョンを管理するために RVM を使うことにしました。

社内の人から、RVM は Ruby のバージョンを上げるときにいろいろアレだし、いまは rbenv のほうが良いよとも聞いたのですが、RVM のほうが定番らしくウェブ上に情報がたくさんあったのと、前述の参考書が RVM を採用していたので RVM を選びました。

-RVMをやめてrbenvにした | tech.portalshit.net -rbenvのインストール « NakajiJapan

あー、あと、最近お気に入りの JetBrains 社の IDE「RubyMine」が RVM に対応しているのも大きかったですね。

-RVM Support in RubyMine 2.0.2 | JetBrains RubyMine Blog

ま、問題が出てきたら乗り換えるかもしれませんが、今はそれよりも早く先に進みたいので。

*4. RVM のインストール

RVM を使うには、Git がインストールされている必要があります。僕は既に入れていました。

|| $ git --version git version 1.7.6 ||<

RVM をインストール。前述の参考書どおりにやろうとしたら、少し情報が古かったようです。

|| $ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm) Deprecated command, please use: bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) ||<

上記メッセージにも表示されていますが、RVM 公式サイト(RVM: Ruby Version Manager - Installing RVM)も確認して、下記を実行。

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

RVM のインストールが完了すると、下記内容が .bash_profile 等に記述されるはずですが、記述されていなければ自ら記述してください。僕の場合は、zsh を使っているにも関わらず bash で実行したので .bash_profile に書き込まれてしまい、.zshrc に書き写しました。

|| -s "/Users/username/.rvm/scripts/rvm" && source "/Users/username/.\ rvm/scripts/rvm" # Load RVM into a shell session as a function ||<

.bash_profile や .zshrc 等を反映させるために、下記コマンドを実行します(または、ターミナルをいったん閉じて開き直してもよいです)

|| $ source ~/.bash_profile ||<

*5. Ruby 1.9.2 のインストール

まず、RVM から、どのバージョンの Ruby をインストールできるのか確認します。

|| $ rvm list known

MRI Rubies

[ruby-]1.8.6[-p420] [ruby-]1.8.6-head [ruby-]1.8.7[-p357] [ruby-]1.8.7-head [ruby-]1.9.1-p378 [ruby-]1.9.1[-p431] [ruby-]1.9.1-head [ruby-]1.9.2-p180 [ruby-]1.9.2[-p290] [ruby-]1.9.2-head [ruby-]1.9.3-preview1 [ruby-]1.9.3-rc1 [ruby-]1.9.3[-p0] [ruby-]1.9.3-head ruby-head

(他にもいろいろ表示される) ||<

Ruby 1.9.2 をインストールします。

|| $ rvm install 1.9.2 ||<

*6. Ruby のバージョンを 1.9.2 に切り換える

Ruby 1.9.2 をインストールしましたが、まだこの時点では Ruby のバージョンが切り換わっていません。

|| $ ruby --version ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin10.0] ||<

RVM use コマンドを実行して、Ruby のバージョンを切り換えます。

|| $ rvm use 1.9.2 Using /Users/username/.rvm/gems/ruby-1.9.2-p290 ||<

*7. Rails 3.2.1 のインストール

Ruby 1.9.2 に切り換えた状態で、Rails 3.2.1 をインストールします。

前回書いたように、バージョンを確認しながら操作します。

-Snow Leopard の Rails が消えていたけど、おかげで gem search | list | query の違いがわかった

|| $ gem query --remote --all --name-matches "^rails$"

REMOTE GEMS

rails (3.2.1, 3.2.0, 3.1.3, 3.1.2, 3.1.1, 3.1.0, 3.0.11, 3.0.10, 3.0.9, 3.0.8, 3.0.7, 3.0.6, 3.0.5, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 2.3.14, 2.3.12, 2.3.11, 2.3.10, 2.3.9, 2.3.8, 2.3.7, 2.3.6, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.2.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.4, 2.0.2, 2.0.1, 2.0.0, 1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.6, 1.1.5, 1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1.0, 1.0.0, 0.14.4, 0.14.3, 0.14.2, 0.14.1, 0.13.1, 0.13.0, 0.12.1, 0.12.0, 0.11.1, 0.11.0, 0.10.1, 0.10.0, 0.9.5, 0.9.4.1, 0.9.4, 0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.5, 0.8.0)

$ gem install rails --version 3.2.1 ... ||<

念のため、きちんとインストールされたか確認します。

|| $ rails --version Rails 3.2.1 ||<

*8. Ruby のバージョンを 1.8.7 に戻す方法

Snow Leopard に元々入っていた Ruby 1.8.7 を使いたいときは、下記を実行します。

|| $ rvm use system Now using system ruby.

$ ruby --version ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin10.0] ||<

*9. Ruby 1.9.2 の環境をデフォルトにする

再度「rvm use 1.9.2」を実行すれば、また Ruby 1.9.2 を使えますが、ターミナル起動時に、また 1.8.7 に戻ってしまいます。いちいち切り換えるのも面倒なので、デフォルトを 1.9.2 にしてしまいます。

|| $ rvm use --default 1.9.2 Using /Users/username/.rvm/gems/ruby-1.9.2-p290 ||<

以上です。Enjoy!!

*参考書籍

RailsによるアジャイルWebアプリケーション開発 第4版

RailsによるアジャイルWebアプリケーション開発 第4版

Rails の参考書といえば、もはやこの本が定番だと思いますが、昨年の暮れに Rails 3.1 に対応した第4版が出ました。

紙の本なら Amazon が安いかもしれませんが、僕は、オーム社のサイトから僕は紙版と PDF 版のコンボパックを買いました。デュアルモニタを使えるときには PDF 版を使い、MacBook Air 単独のときや、電車に乗っているときなどは紙版を読んでいます。

-RailsによるアジャイルWebアプリケーション開発 第4版 | オーム社eStore(β)

ついでに言うと、コレ(↓)もオススメ。いくつか試したブックスタンドの中で一番使いやすかったです。

【1997年モデル】ELECOM EDH-004 ブックスタンド

【1997年モデル】ELECOM EDH-004 ブックスタンド

*参考サイト

-rvm 入門 … 複数バージョンの Ruby と Rails を混在させる - まちゅダイアリー(2011-05-21) -RVM: Ruby Version Manager - Installing RVM