windows & gem で hpricot のインストール

はまったのでメモ

mechanize を入れようとしたら hpricot をインストールするとこでビルドできないっていうエラーがでた。

windowsのrubyでhpricotのインストールエラー - (゚∀゚)o彡 sasata299's blogの方法でもいいんだけど、もうちょっと調査してみた。

なんでエラーになるかっていうと、gem って拡張ライブラリ付きのパッケージの場合、普通その拡張ライブラリをビルドしようとするからみたい。で、windows の場合、拡張ライブラリのバイナリ付きの gem だったら素直に入るんだけど、そうじゃない場合はビルドしようとしてエラーになる。

そこで、どんな gem が用意されてるかを調べてみる。gem コマンドで platform 付きで検索する事はできないから(できる方法ってある?)、http://gems.rubyforge.org/gems/ からこんな感じで hpricot を探すと

$ wget -O - http://gems.rubyforge.org/gems/ | grep -e hpricot | sed -e "s/<[^>]*>/ /g" | awk "{print \$1}"

hpricot-0.4-mswin32.gem
hpricot-0.4.gem
hpricot-0.5-mswin32.gem
hpricot-0.5.gem
hpricot-0.6-jruby.gem
hpricot-0.6-mswin32.gem
hpricot-0.6.161-jruby.gem
hpricot-0.6.161.gem
hpricot-0.6.gem
...

最新の 0.6.161 だと mswin32 用の gem がない。0.6 にはあるから、それをインストールする。

$ gem install -v 0.6 hpricot
...

これでOK。