読者です 読者をやめる 読者になる 読者になる

うめすこんぶ

日々のプログラミングで残しておきたいメモ.何かの役に立てれば幸いです.

mac OSX 10.9.4でスクレイピング用gem Nokogiri.rbのインストールでつまった

ruby

スポンサーリンク

スクレイピングに興味があり、rubyで気軽に試してみようと思いました。 スクレイピングで、Web上のHTMLの必要部分を切り抜いて多種多様に利用することができます。 例えば、私が作ったのですと、定期的に人気曲のランキングサイトに行ってランキング部分だけローカルに保存するというものです。

さて、その世界では有名なgemに「Nokogiri.rb」があるのですが、macへのインストールで苦しんだのでメモします。

インストールする

今回はhomebrew0.9.5を使用しました。macportによるインストール方法もあるようです。

  • Homebrew を最新にする。
brew doctor       #インストール内容が最新かチェック
brew update       #ログにupdateの記述があったときに行う
brew upgrade      #利用可能なアップデート版をアップグレード
  • 依存ライブラリ libxml2, libxslt, libiconvの3つをインストールする
brew install libxml2 libxslt libiconv
  • この一文が大事。 これを打ってからだといままでの失敗が嘘のようにすんなりインストールが通りました!!
xcode-select --install
  • Nokogiri本体のインストール
sudo gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/
  • 確認
sudo gem list nokogiri

出力:

*** LOCAL GEMS ***

nokogiri (1.6.3.1, 1.5.6)

失敗談

参考記事に乗っていたコマンドを打ったのですが、うまく行かなかった例。

forceでlib***を無理やり有効化する設定を使用としたら

sudo brew link libxml2 --force

こんなメッセージが。

Password:
Error: Cowardly refusing to `sudo brew link`
You can use brew with sudo, but only if the brew executable is owned by root.
However, this is both not recommended and completely unsupported so do so at
your own risk.

どうやら、推奨されてないことをやろうとしているし、この後進まないので失敗でしたね。

  • Nokogiriのインストールの時、下記のようにライブラリの場所を指定するオプションをいろいろつける例もありましたが、 私の場合は使いませんでした。
sudo 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-dir=/usr/local/Cellar/libiconv/1.14

参考

次回、Nokogiriを使用した簡単なプログラムを書いてみようと思います。