ようやくWindows環境にNokogiri(Ruby用のHTMLパーサー)を導入することができたので,その手順についてメモしておきます。
Nokogiriのインストールマニュアルを読むと,Windows環境ではgemを使ってストレートにインストールできると書かれています。
gem install nokogiri
Nokogiriはネイティブライブラリを使っていますが,コンパイル済のバイナリをgemパッケージに同梱しているため,それらがそのまま使用され,インストールは問題なく済む・・・はずなのですが,どうしても「ネイティブライブラリを作成できない」というエラーでインストールができないという事態に陥る場合があります。
使用しているRubyのチェック
Rubyの公式サイトで配布されているWindows用Rubyインタプリタは,大きく分けて次の二つです。
- ActiveScriptRuby (mswin32)
- RubyInstaller (mingw32)
Nokogiriのgemパッケージに同梱されているバイナリはmingw32用であるため,RubyInstallerでmingw32版のRubyをインストールする必要があります。
mswin32版をインストールしている場合は,そのままではNokogiriを使うことができないため,mingw32版で置き換えるか,新たにmingw32版をインストールしなければなりません。
Ruby 2.3の場合
この記事を書いている時点では,Ruby 2.3が最新のバージョンとなっています。
一方,Nokogiriは,gem経由で取ってくることのできるパッケージではRuby 2.3にインストールすることができず,Ruby 2.2までしかサポートしていません。
そのため,Nokogiriのgemパッケージが公開されているページで開発中のバージョン(記事執筆時では1.6.8rc3)をダウンロードして,それを直接にインストールする必要があります。
32ビット版(x86)と64ビット版(x64)があるので,インストールしたRubyに合わせたパッケージをダウンロードしておきます。
(余談ですが,64ビット版でもビルド環境はmingw32になります。)
Nokogiriをインストールする前に,依存関係にあるパッケージをインストールしておく必要があります。
gem install pkg-config gem install mini_portile2
これらのパッケージを導入してから,ダウンロードしたgemパッケージをインストールします。
gem install nokogiri -l (gemパッケージのパス)
Ruby 2.2の場合
Ruby 2.2の場合は,正式にサポートされているようなので,gemを使えばそのままインストールすることができます。
gem install nokogiri
Ruby 2.3は新機能をいくつも備えているので,魅力的な選択肢です。
安定性を取るか,新機能を取るか,うまく選ぶ必要がありますね。