OS X Mavericksへのnokogiriインストールで悩んだ話
途中経過を大分忘れているので要点だけ書く。 Web上に色々記事は有ったけど結局やり方がバラバラだったりでうまく行かなかったので 取り敢えずメモ代わりに。
インストールするnokogiriのバージョンは1.6.2.1っぽい。
どんなエラーメッセージで悩んでたか
基本的にはextconf.rbがどうだのというメッセージが出てた気がする。
新しいCommand Line Developer Toolsをインストール
最近Mountain LionからMavericksに上げて、それからも普通にgcc
やmake
が使えてたので大丈夫かと思ってたんだけど
nokogiriのインストールには新しいバージョンのCommand Line Developer Toolsが要るらしい。
Xcodeを立ち上げてみるとなんかAdditionalな何かをインストールする的なこと言われたのでそれをインストールして、以前と同じようにCommand Line Toolsのアップデートを試みるも Command Line Developer Toolsのインストール方法が変わってるので 以下を参考にCommand Line Developer Toolsをインストール。
Mavericks で Xcode から Command Line Developer Tools をインストールする - kakakakakku blog
$ xcode-select --install
GUIウィンドウが立ち上がるので指示にしたがって茶でもすすりながら待つ。
nokogiriをインストール
Web上の文献によるとbrew
とかで外部ライブラリのインストールが色々必要らしいが、
最近のバージョンのnokgoiriは自動で適したバージョンのを一緒にインストールするらしい。
ただ、何のオプションも付けずにgem install nokogiri
すると作業は進んでるっぽいんだけど
何も言わずに黙々と進めたりするので下のようなコマンドでgemをインストール。
$ gem install nokogiri --verbose
途中に以下のメッセージが出るが
IMPORTANT! Nokogiri builds and uses a packaged version of libxml2.
If this is a concern for you and you want to use the system library instead, abort this installation process and reinstall nokogiri as follows:
gem install nokogiri -- --use-system-libraries
If you are using Bundler, tell it to use the option:
bundle config build.nokogiri --use-system-libraries bundle install
However, note that nokogiri does not necessarily support all versions of libxml2.
For example, libxml2-2.9.0 and higher are currently known to be broken and thus unsupported by nokogiri, due to compatibility problems and XPath optimization bugs.
If this is a concern for you and you want to use the system library instead,
とのことなので今回はnokogiriに含まれるバージョンのを使うので無視。
多分これで行けるはず。
オマケ
なんでnokogiriが必要だったかというとburtlo/paradeを試したかったからなんだけど、このインストールでもnokogiri以外にもlibffiか何かのインストールで同様のエラーが出たけどCommand Line Developer Toolsをインストールした後はエラー吐かなかったのでRubyでNative Extension周りでトラブってる人は取り敢えずCommand Line Developer Toolsを見直すと良い。