nokogiri インストール時のエラー Running ‘patch’ for libxml2 2.8.0… ERROR

スポンサーリンク

bundle install で nokogiri をインストールしようとしたら、”Running ‘patch’ for libxml2 2.8.0… ERROR” エラーに遭遇しました。正確には、vagrant 上に chef-solo でプロビジョニングした CentOS 環境に、capistrano でのデプロイテストを行っている途中で起きたエラーです。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

バンドルされた libxml2-2.8.0 インストール中にエラー発生

nokogiri が依存する libxml2-2.8.0 のインストール時にエラーが発生したのですが、どうやら nokogiri はデフォルトでは libxml2-2.8.0 を同梱していて、今回の場合 libxml2-2.8.0 インストール中にエラーが起きていた。以下 capistrano により出力されたエラーログ。

ググったところ、この nokogiri に同梱された libxml2 を使わずに、システム内のを使うとインストールが上手くいくという情報をいくつか見つけました。出力されたログにもヒントになるメッセージがあり、システム内の libxml2 を利用する場合は、use-system-libraries のオプションを使えとあります。

Gemfile に ENV[‘NOKOGIRI_USE_SYSTEM_LIBRARIES’] = ‘YES’ を追加

まずはデプロイ先の vagrant 環境のシステム内に libxml2, libxslt が入っているかを確認。

libxml2 のバージョン確認。

libxslt のバージョン確認。

入ってなければ、インストールする Recipe を書いて適用させる。

調べたところ Gemfile に以下のように書いても、システム内のライブラリを使用するように指定できるそうなので、こっちの書き方にしました。

Gemfile

デプロイをもう一回試す。

今度は上手く nokogiri をインストールできました。

nokogori のバージョン・情報を確認。

おお、ちゃんとシステム内の libxml2(バージョン: 2.7.6)のライブラリを利用して nokogiri が入りました。システム内のライブラリを使用するので、nokogiri のインストール時間が少しは短くなる効果もあるんじゃないでしょうか。

スポンサーリンク
私は以下の本で Ruby を覚えました。メタプログラミングRubyは入門を超える内容で難しめです。
 
スポンサーリンク

Leave Your Message!