Homebrew+RVMでreadline/iconvを使う
以前書いたRVMの記事は、その後いろいろわかったことを追記していって、
結構な分量になってます
今さらRVMの使い方をまとめてみる - どっかのBlogの前置きのような
今回のもそこに追記しようと思ったのですが、
他の要因も絡むので、別記事にしてみます...φ(・ω・`)
<追記@2011/07/19>
コメントでいただいたように、RVM側で独自の管理をさせた方が、
Homebrewに左右されないので妥当と思われます
https://rvm.beginrescueend.com/packages/readline/
https://rvm.beginrescueend.com/packages/iconv/
これをふまえてあらためて手順を書いておきます
rvm pkg install readline rvm pkg install iconv rvm install 1.9.2 --with-readline-dir=$rvm_path/usr \ --with-iconv-dir=$rvm_path/usr
確認方法等は同じです
</追記>
最近、Macで開発している人に人気なのが、
「Homebrew」というパッケージマネージャーです
Homebrew — MacPorts driving you to drink? Try Homebrew!
これの利点は、「OSのシステムに存在するライブラリをそのまま利用する」ことと、
「パッケージの管理スクリプトをRubyで書ける」ということです
特に前者は重要で、Macportsは「/opt/local」で全部完結するよう、
すでにOSにあるものもインストールするので、
インストールやメンテナンスにとても時間がかかります(´-ω-)
私も乗り換えてみましたが、MacportsにあるものはたいていHomebrewにもあるので、
あまり問題にならない感じです
ただ・・・これにRVMが絡むと面倒なことにΣ(・ω・ノ)ノ
以前の記事で書いたように、インストール時にreadlineを組み込まないと、
irbで日本語が使えないため、Macの場合はわざわざオプションが必要でした
その状態でMacportsを消してしまえば、リンクが切れてしまうため、
irbどころかrubyそのものの動作も怪しくΣ(゚Д゚)ガーン
そこで、どう対処すべきかと悩んだところ、
そのものズバリのページを見つけました
http://nruth.tumblr.com/post/858778765/fixing-irb-readline-with-snow-leopard-homebrew-rvm
これを参考に、一通り試してたどり着いたのがこれです(´・ω・)っ
brew install readline # readlineのインストール brew link readline # readlineをリンクPATHへ これをやらないとダメだった brew install iconv # ruby実行でこれのエラーが出たので同様に brew link iconv rvm install 1.9.2 -C "--with-opt-dir=/usr/local"
ポイントは"brew link"コマンドです
これで"/usr/local/lib"にライブラリへのリンクが作成されるので、
後はMacportsと同じようにPATHを指定すればOK・・・と
正しくインストールされたかは、以下のようにすれば確認できます
$ irb irb> p 'あ' # readlineがリンクされていないと、そもそも入力不能 irb> require 'iconv' # iconvが組み込まれていればエラーにならない
わりと詰まりやすいと思うので、参考にしてくださいね(`・ω・´)ノ