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 でのデプロイテストを行っている途中で起きたエラーです。

スポンサーリンク

バンドルされた 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は入門を超える内容で難しめです。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!