Mac Portsのselect rubyでRubyのバージョン変えたのにbundle installでコケる

Posted by joeartsea on 2013-08-22

自分はなぜかMac Portsを使ってます。なぜかは解りませんが昔から使ってるのでそのままみたいな感じです。

だからRubyもPortsで入れていて複数のRubyバージョンの共存にはselect rubyってやつを使ってます。以下みたいにすることで簡単にRubyのバージョンを切り替えられます。

1
2
3
4
5
6
7
8
$ sudo port select ruby ruby19
Selecting 'ruby19' for 'ruby' succeeded. 'ruby19' is now active.
$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin11]
$ sudo port select ruby ruby20
Selecting 'ruby20' for 'ruby' succeeded. 'ruby20' is now active.
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin11]

select ruby入れておけばRuby自体はPortsでインストール可能なRubyをガンガン入れれると思います(多分)

でも、あるRailsアプリをGithubからCloneして動かそうとしてbundle installすると「Rubyは2.0以上じゃねーとダメだ」と怒られました。Gemfileを見ると確かにruby '2.0.0'とありました。

あれ?と思って再度select rubyで2.0しruby -vでバージョンも確認しましたがRubyのバージョンはちゃんと2.0.0p247だし…

bundlerってRubyのバージョンどこを見てるんだろうってググっても見つからず環境変数見てもそれらしいものもなく…

と、そこでbundler自体が古いんでしょと気がつきました。で以下のようにbundlerをインストールしなおしたらOKでした。

1
2
$ sudo gem uninstall bundler
$ sudo gem install bundler

これは1.9のgemのbundlerが使われたままで新たに2.0のgemにbundlerが入ったのかどうか定かではないですが、まあいいやw

あと、ずっとbundlerでSSLのエラー吐いてたのも何か治った。いつもGemfileのhttps://rubygems.orgをhttp://rubygems.orgに書き直してたから助かったw

あとrakeも全部Ruby 2.0用にインストールが必要ですね。