Satoryu's Diary

Rubyが好きなプログラマーの日記。日々の生活、開発に関するメモとか考えとか。


2013年10月13日 [長年日記]

_ Nokogiriをインストールする(2013年10月版)

Nokogiriのv1.6.0をインストールしようとしたところ、下記のようなエラーが出てしまい、インストールできなかったので、 色々と調べて、なんとかインストールできた。

$ gem install nokogiri
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
        ERROR: Failed to build gem native extension.

    /usr/local/var/rbenv/versions/2.0.0-p0/bin/ruby extconf.rb
Extracting libxml2-2.8.0.tar.gz into tmp/x86_64-apple-darwin12.5.0/ports/libxml2/2.8.0... OK
Running 'configure' for libxml2 2.8.0... OK
Running 'compile' for libxml2 2.8.0... OK
Running 'install' for libxml2 2.8.0... OK
Activating libxml2 2.8.0 (from /usr/local/var/rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin12.5.0/libxml2/2.8.0)...
Extracting libxslt-1.1.26.tar.gz into tmp/x86_64-apple-darwin12.5.0/ports/libxslt/1.1.26... OK
Running 'configure' for libxslt 1.1.26... ERROR, review 'tmp/x86_64-apple-darwin12.5.0/ports/libxslt/1.1.26/configure.log' to see what happened.

上のエラー出力をよくみるとnokogiriが依存しているライブラリlibxml2とlibxsltを展開しようとしている。自分の環境ではhomebrewで2.9.1をインストールしているのだが、それを無視してnokogiriのインストール時に実行されるextconf.rbが勝手に2.8.0を入れようとしている。libxsltも同様だ。 で、そのソースを読んでみると、NOKOGIRI_USE_SYSTEM_LIBRARIESという環境変数が定義されていると、依存ライブラリがシステムに既にインストールされているものとして、nokogiriのインストールが実行される。

ということで、homebrewを使ってライブラリを管理している皆さんは、

$ brew install libxml2 libxslt libiconv
$ brew link libxml2 libxslt libiconv
$ NOKOGIRI_USE_SYSTEM_LIBRARIES=yes gem install nokogiri -v '1.6.0'

でインストールしましょう。


最近の投稿

翻訳しました(ちょっとだけ)

follow us in feedly