nokogiri の依存ライブラリ@RHEL2009/05/10

現状最速(?)のruby用のxml parser nokogiriのインストールメモ

とはいえ、nokogiriのインストール自体は

$ sudo gem install nokogiri

だけで終わるので、rpmをインストールする必要のある依存ライブラリのメモです。

libxml2
libxml2-devel
libxslt
libxslt-devel

あとはこれらの依存ライブラリぐらいで行けるはず。

RHEL5 に RMagick をインストール2009/05/01

予習

RMagick は、ImageMagick または GraphicsMagick を利用した Ruby向け画像操作ライブラリ。 できるだけrpmを利用したいので、今回はImageMagickを利用することにします。

gem でインストールが可能ですが、ネイティブコードのビルドがあるので、 make や gcc、ImageMagickの開発パッケージがインストールされているかを 確認しておいてください。

更にRMagickには、バージョン1系とバージョン2系があり、協働できる ImageMagick のバージョンが異なります。 詳しくはこちら (当然、2系の方がAPIは豊富です)

さて、Redhat Enterprise Linux 5で、オフィシャルのリポジトリからrpmでインストールした場合、 ImageMagickのバージョンは 6.2.8 のはずです。

この為、インストールできる RMagick はバージョン1系ということになります。 バージョン1系の最新(最終?)は 1.15.17 のようです。

インストール

バージョンを指定してインストール。

$ sudo gem install rmagick --version 1.15.17

これで上手くいけば良いのですが、上手くいかないはずです。

わざわざこんなエントリを書いているぐらいですからね

Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
        ERROR: Failed to build gem native extension.
(略)
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/rmagick-1.15.17 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/rmagick-1.15.17/gem_make.out 

そして、インストールログを見ろと言われる訳ですが、ログの最後の行が

RMagick configuration completed successfully.

だったりして、さっぱり訳が判りません。

この問題は、ネイティブコードをビルドするgemに共有する問題だと思っているのですが……。

  • ネイティブコードをビルドする gem を
  • version オプションを指定してインストールしようとすると

問答無用でエラーになるような気がします。 rubygems のソース自体は追っていないので、あくまで推測ですが。

エラー回避(1)

では、何が必要かと言うと、version オプションを使用せずに、固有のバージョンのgemをインストールできれば良い訳です。

幸い、すでに必要なgemファイルは取得されています。 このファイルを指定してやれば、version オプション無しで、固有のバージョンのgemをインストールできます。

$ cp /usr/lib/ruby/gems/1.8/cache/rmagick-1.15.17.gem ~/.
$ sudo gem install ~/rmagick-1.15.17.gem

先程よりは、先に進めるはずです。

ちなみに、sqlite3-ruby などはこれでインストールに成功します。

今度のログは、ちゃんと configure が動作した形跡があり、make も動いているようです。 エラーを吐いているのは、post-setup.rb のようです。 スタックトレースの先頭あたりを見ると

setup.rb: entering post-setup phase...
post-setup.rb: setting up documentation...
/usr/bin/ruby -I /usr/lib/ruby/gems/1.8/gems/rmagick-1.15.17/./lib -I /usr/lib/ruby/gems/1.8/gems/rmagick-1.15.17/./ext/RMagick Adispatch.rb (example 1 of 183)
/usr/bin/ruby -I /usr/lib/ruby/gems/1.8/gems/rmagick-1.15.17/./lib -I /usr/lib/ruby/gems/1.8/gems/rmagick-1.15.17/./ext/RMagick InitialCoords.rb (example 2 of 183)
/usr/lib/ruby/gems/1.8/gems/rmagick-1.15.17/./lib/rvg/misc.rb:321:in `get_type_metrics': unable to read font `/usr/share/fonts/default/TrueType/verdana.ttf' (Magick::ImageMagickError)

はい、verdana.ttf を利用したテストでエラーが出ています。

エラー回避(2)

RMagick のインストール中のテストで利用されるTrue Typeフォントは

  • arial.ttf
  • arialbd.ttf
  • arialbi.ttf
  • verdana.ttf

の4つです。

ASCIIが揃っていれば良いはずなので、適当なTrue Typeフォントをリネームするか、 これらは、Windowsの標準インストールに含まれるフォントなので(ry

ともかく、なんとかして

/usr/share/fonts/default/TrueType/

にファイルを用意してください。

これまで、True Typeフォントを利用していなければ、ディレクトリも無いはずです。

これで、改めて

$ sudo gem install ~/rmagick-1.15.17.gem

を実行すると、

Building native extensions.  This could take a while...
Successfully installed rmagick-1.15.17
1 gem installed
Installing ri documentation for rmagick-1.15.17...
Installing RDoc documentation for rmagick-1.15.17...

はい、インストールに成功しました。

おつかれさまでした。