OS X Mavericksへのnokogiriインストールで悩んだ話

途中経過を大分忘れているので要点だけ書く。 Web上に色々記事は有ったけど結局やり方がバラバラだったりでうまく行かなかったので 取り敢えずメモ代わりに。

インストールするnokogiriのバージョンは1.6.2.1っぽい。

どんなエラーメッセージで悩んでたか

基本的にはextconf.rbがどうだのというメッセージが出てた気がする。

新しいCommand Line Developer Toolsをインストール

最近Mountain LionからMavericksに上げて、それからも普通にgccmakeが使えてたので大丈夫かと思ってたんだけど 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を見直すと良い。

当ブログに於いて、私tasutenによって創作されたことが自明である著作物に対しては、別途明示のある場合を除き全てCC0が適用されます。