WindowsのRuby 2.2でNokogiriを無理矢理使う

WindowsのRuby 2.2でXML解析のNokogiriを無理矢理使う方法を紹介します。

本ブログでは過去にWindowsでnokogiriを使う方法を紹介していました。

以前は真面目にインストールしようとして何度も苦労させられたので、もう今回は付き合ってられるかってことで、Vimを使って無理矢理使えるようにしちゃいましょう。現時点で最新のnokogiri 1.6.6.3にはruby 2.0と2.1のプリコンパイルバイナリが含まれています。この2.1のやつを書き換えます。

使ってるruby 2.2はRubyIntallerのもので、devkitはインストール&セットアップ済みです。

まずは、普通にnokogiriをインストールしましょう。

gem install nokogiri

次にrubyのインストールディレクトリ(私の場合はD:\Ruby\ruby-2.2.3-x64-mingw32)を開きましょう。そこから順番に以下のフォルダを開いていきます。32bit版を使ってる場合は微妙にフォルダ名が異なるはずなので、適宜読み替えましょう。

lib\ruby\gems\2.2.0\gems\nokogiri-1.6.6.3-x64-mingw32\lib\nokogiri

ここに2.1というフォルダがあるはずです。これをコピーして2.2という名前に書き換えます。

そして2.2フォルダの中のnokogiri.soをVimで開きます。これはバイナリファイルですからグチャグチャに表示されますが、慌てずにバイナリモードに切り替えましょう。

:e ++bin

そしてruby210.dllという文字列を探しだし、これをruby220.dllに書き換えます。

:%s/ruby210\.dll/ruby220.dll

いや該当箇所は1箇所しかありませんから、こんな面倒なことしないで/210<CR>してR220<ESC>で十分です。

あとは :wq で保存して終了です。これだけでWindowsのruby 2.2でnokogiriが使えてしまいます。まぁ、いつまで有効な方法かはわかりませんが…

動けばよかろうなのだ。