MacのRVM+Homebrew環境にRuby2.0をインストールしてみた
※本記事は自鯖Blogの転載です
※元記事は2013/02/25に書かれました
http://blog.parrot-studio.com/2013/02/ruby2-with-rvm-and-homebrew/
※半年前の記事なので、情報が古い部分もありますが、そのまま転載します
まずはRuby2.0 & Ruby20周年おめでとうございますヽ(`・ω・´)ノ
http://www.ruby-lang.org/ja/news/2013/02/24/ruby-2-0-0-p0-is-released/
ということで、早速MacにRuby2.0をインストールしようとしたのですが、
RVMの挙動が大きく変わっていたため、ちょっとややこしいことに(´-ω-)
以前はRVMの管理下に独自でreadlineやopensslを入れ、
それを指定してインストールとかやってました
しかし、Ruby2.0にあわせたのかわかりませんが、
必要なライブラリはHomebrew側で管理するように変わったようです*1
そのため、普通に「rvm install 2.0.0」すれば、
Homebrewが起動していろいろ入れてくれるのですが、
ちょっと気持ち悪いので、個別にインストールしてみました
Homebrewで関連ライブラリをインストール
すでにRuby1.9.3がインストールされていましたし、
Rabbitのおかげで大量のライブラリも入っていたので、
「Ruby2.0に必要なもの」がどれかはわかりません(´・ω・`)
が、とりあえず自宅 & 会社のMacで要求されたのは以下のライブラリでした
これで足りないとしても、rvmがhomebrew経由でインストールしようとするので、
おそらく問題ないのですが、個人的に気持ち悪かったので・・・(´-ω-)
なお、iconvは2.0から廃止されたそうです
RVMでRuby2.0をインストール
以前は「--with-gcc=clang」とかつけていたのですが、
とりあえずなくても入ったように見えます
いまいちわかりませんが(´-ω-)
$ rvm install 2.0.0
昨夜試した自宅環境だとgemのインストールで止まったのですが、
会社の環境では問題なかったので、
もしかするとRVM自体が修正されたかもしれません
bundler周りの挙動
最近のRubyはbundlerが必須ですが、1.3.0以上が必須で、
普通に「gem install bundler」しても1.2.4(2013/02/24時点)なので、
エラーが出て動きませんでした(´-ω-)
これも先ほど試したら「1.3.0.pre.8」がインストールされていたので、
RVMが修正されたのか、「gem install bundler」してはいけないのか、
ちょっとわかりません
SSLの問題
先日書いたのと同じSSLの問題が、Ruby2.0でも発生します
http://blog.parrot-studio.com/2013/01/macosx-ruby193-ssl-error/
しかも、Gemfileにおける「source :rubygems」がNGになり、
「source 'https://rubygems.org'」と書くようになったため、
SSLが正しく動かないとbundleが叩けませんΣ(゚Д゚)ガーン *2
【追記:2013/02/27】
どうもこの方法は筋が良くないようなので、
こちらの手順を使ってください
homebrew で入れた openssl を使って Ruby をコンパイルすると SSL 利用時に証明書エラーが発生する場合の対応 - Qiita [キータ]
要は、curl-ca-bundleが提供する証明書を、
openssl以下に置けばOKです
curl-ca-bundleは上記の通り、
rvmが要求してきますので、必ず存在するはずです
【追記終わり】
手順としては先ほどの記事と同じで、
まずRubyが参照している証明書を確認します
$ ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE' "/usr/local/etc/openssl/cert.pem"
あとはダウンロードして配置するだけです
$ cd /usr/local/etc/openssl/ $ curl -O http://curl.haxx.se/ca/cacert.pem $ mv cacert.pem cert.pem
その他気づいた点
私が開発しているRO向けシステム、
「ROGv」をRuby2.0で動かしてみたところ、
bundleでいくつか問題が出たものの、基本的にはそのまま動きました
https://github.com/parrot-studio/rogv_server
さすがは1.9.3との100%互換です(`・ω・´) b
問題が出たのは、「pry-debugger」が参照している、
「debugger」というgemです
Ruby2.0ではデバッグ周りが変わってますし、
システムの挙動そのものには影響しないので、
とりあえずpry-debuggerをコメントアウトしています
あと、Ruby2.0と関係あるかわかりませんが、
mongoが参照しているbson_extが認識されてないように見えます
Gemfile.lockにはたしかにあるのですが、
padrinoで起動するとインストールしろって警告が出るんですよね・・・
問題なく動いているので放置してますが
以上、私が試したことをメモしてみましたが、
おそらく2.0での本格的な開発はまだ早いと思われます
少なくとも、Rails4が正式リリースされるくらいまで、
様子見した方がいいとは・・・(´-ω-)
追記
ついでに1.9.3をp392にアップデートしようとしたところ、
やはり「rvm install 1.9.3」だけでOKでした
Homebrewと連動したことで、
長いコマンドを書かなくて良くなったのはありがたいですねヽ(`・ω・´)ノ