Nokogiri 1.6.0 のインストールが遅い件とその解決方法

  • 88
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

Nokogiri 1.6.0 のインストールは、そのひとつ前の 1.5.10 と比較してとても遅い。これは、 1.6.0 では libxml2 および libxslt を同梱し、環境に合わせてビルドするようになったからだ。

gem install nokogiri したときにライブラリ不足で止まってしまうのはストレスフルだったので、これは人によっては嬉しい変更なんだろう。
ただ問題は、 libxml2 や libxslt がシステムに入っている場合でも、これらのビルドが行われることだ。
gem update するだけなら気にならないが、 bundle install にて nokogiri を利用するような環境の場合、繰り返しライブラリをビルドされるとさすがに時間がもったいない。

こういったケースでは、 NOKOGIRI_USE_SYSTEM_LIBRARIES 環境変数を設定しよう。この環境変数があれば、依存ライブラリのビルドは行われなくなる。これは Gemfile で設定してしまうと都合がいい。

Gemfile
source 'https://rubygems.org'

ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES'] = 'YES'
gem 'nokogiri', '1.6.0'

なお、この問題は Linux や MacOS 上で起こる問題。
Windows 環境では Nokogiri 1.6.0 バイナリパッケージが準備されているのでこの問題にはぶち当たらない、ぶち当たらないと思う、ぶち当たらないんじゃないかな。