nokogiri を入れるために
Ruby on Rails で bundle install しようとしたらnokogiri が入っていないと警告された。
An error occurred while installing nokogiri (1.6.3.1), and Bundler cannot
continue.
Make sure that `gem install nokogiri -v '1.6.3.1'` succeeds before bundling.
そこでnokogiri を入れようとしたら、次のようなエラーが出た。
Gem files will remain installed in /Users/<UserName>/.rvm/gems/ruby-2.0.0-p481@railstuto_4.0/gems/nokogiri-1.6.3.1 for inspection.
Results logged to /Users/<UserName>/.rvm/gems/ruby-2.0.0-p481@railstuto_4.0/gems/nokogiri-1.6.3.1/ext/nokogiri/gem_make.out
bundle updateなどを繰り返して後、エラー表示の下に指示みたいなのが書かれているのに気づいた。ちょっと早く気づけよ。。。
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/Users/UserName/.rvm/rubies/ruby-2.0.0-p481/bin/ruby extconf.rb
Building nokogiri using packaged libraries.
-----
libiconv is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
libiconvをインストールするためにnokogiriのサイトへ
http://nokogiri.org/tutorials/installing_nokogiri.html
Homebrew0.9を使っているので該当部分を見る。
libxml2とlibxsltはすでにインストールされていたので次のところから始める。
$ brew link libxml2 libxslt
実行すると警告が出た。
Warning: libxml2 is keg-only and must be linked with --force
Note that doing so can interfere with building software.
Warning: libxslt is keg-only and must be linked with --force
Note that doing so can interfere with building software.
警告をスルーして次のところへ
$wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
そのまま実行すると
wget: command not found
というエラーが出るので調べると、
wget の代わりに
curl -O
でもよさそうなので、それを使ってみると
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4605k 100 4605k 0 0 287k 0 0:00:16 0:00:16 --:--:-- 34861
というのが出て成功したっぽい。
その後も指示通りに通って、libiconvがインストールされた。
で、その後
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2
--with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib
--with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26
--with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include
--with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
というふうに、見たまま実行すると前と同じエラーになる。
gem list やlibxml2などはちゃんと見つかるのに。。。。
で最終的に気になって改行などをなくして次のように1行にして実行した。
$ gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
Successfully installed nokogiri-1.6.3.1
通った。がんばった。