nokogiri 1.4.4でエラー
Ruby on Railsで業務アプリを構築中。
将来必要になるだろうjpmobileを入れてみたところ、入るバージョン0.1.3ではwebratを使用しており、その依存関係でnokogiriがインストールされる。
開発マシンのMac OS X 10.6ではそこでエラーが発生。
mkmf.logはこんな感じ。
have_func: checking for iconv_open() in iconv.h... -------------------- no "gcc -o conftest -I/usr/include/ruby-1.9.1/x86_64-darwin10.4.0 -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -I/opt/local/include/libxml2 -I/usr/local/include/libxml2 -I/opt/local/include -I/usr/local/include -I/usr/include -I/usr/include -I/usr/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -pipe -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c -L. -L/usr/lib -L/opt/local/lib -L/usr/local/lib -L/usr/lib -L. -lruby-static -lpthread -ldl -lobjc " Undefined symbols: "_libiconv_open", referenced from: _t in ccKMdG8x.o ld: symbol(s) not found collect2: ld returned 1 exit status
どうも、iconvライブラリの読み込みでうまくいってない感じ。
ググってみるとnokogiri 1.4.1の動作報告はガンガン出てるので、以下をGemfileに挿入。
gem 'nokogiri', '1.4.1'
うまくいきました、と。
(追記)Nokogiriインストール時に入れたlibxml2のバージョンが求めるものと違っていたようで、railsコマンドの度にずっと警告が出てる。
WARNING: Nokogiri was built against LibXML version 2.7.8, but has dynamically loaded 2.7.3
どうってことは無いのだが、気になる人は libxml2.7.3 にすべきだろう。私は面倒なのでこのままにする。