RMagickインストールの道

Leopardを買ってウキウキしながら環境を整理してたんですが、RMagickのインストールにつまずいたのでメモ。まさかインストールでこんなに手こずるとは思わなかった。。でもLeopardはいいですよ。

目標: RMagickを入れる

  • とりあえずMacPortsをインストールしなおそう。
  • ImageMagick入れるだけだろう、、、と入らねー
  • RMagickエラー出るじゃん
    • ghostscriptか。。。て、これも動かん。
  • ようやく入った ← いまココ

MacPortsをインストールしなおそう

上書きアップグレードしたんですが、zshが一瞬動かなくなっていたり、以前にPortsで入れたsvnsvk、screenが/usr/binに入ったのよりも古かったりしたので環境を整理しようと思い立ちました。

で、Beginning OS X 10.5運用編の記述を参考にアンインストール

ImageMagick入れるだけだろう、、、

と思ったら依存しているtiffのビルドにコケました。なんということでしょう。MacPortsのBug reportをみたら同様の症状があるみたいで、下記の習性で直りました。

$ sudo vim /opt/local/var/macports/sources/rsync.macports.org/release/ports/graphics/tiff/Portfile

platform macosx {
  configure.args-append   --with-apple-opengl-framework
  post-configure { reinplace "s,-L/usr/X11/lib,," ${worksrcpath}/tools/Makefile }
}

http://trac.macosforge.org/projects/macports/ticket/12997

(注) 10/30 0:10分に公式にも入ったということを教えてもらいました。thanx > cojix

で、あとはあっさりImageMagickをインストール。Xはほとんど使わなくなったなぁ、ということで+no_x11でインストール

# 動かないというオチ付きなのでまだやっちゃダメ
$ sudo port install ImageMagick @6.3.6-2_0+darwin_8+jpeg2+mpeg+no_x11+wmf

これはあっさり入るんですが、gem install RMagickすると落ちました。どうもフォントを埋め込めないみたい。gsか!

RMagickエラー出るじゃん。て、ghostscript入れてなかった。

ということで、port install ghostscriptしようとしたらこれがまた動かない。どうもXFree86への依存が入ってるみたいで、ここでこける。"univarsal_variant"というキーワードで落ちました(正確なエラーメッセージをメモし忘れた)。SEO的にもう一回書いときます。「macports ghostscript univarsal_variant」

仕方ないので手でghostscriptのPortfileをいじります。
$ sudo vim /opt/local/var/macports/sources/rsync.macports.org/release/ports/print/ghostscript/Portfile

# lib:libX11.6:XFree86 を削除
depends_lib port:zlib \
            port:libiconv \
            port:fontconfig \
            port:expat

これでもう一回ghostscriptをビルドしたら通りました。ちなみにXFree86を削ってOKだろうと思ったのは、同バージョンのgsのPortfileでそれが入っていないものなんかがあったからです。詳しくはPortfileのrevision logをご覧ませ。

長かった。あとビルドするときは+gslibを忘れずに。

$ sudo port install ghostscript +gslib

ようやく入った

これで準備は整いました。あとはgs対応のImageMagickを入れてRMagickを入れるだけ。

$ sudo port install ImageMagick +gs+wmf+mpeg+jpeg2+no_x11+darwin_8

ちなみに、私は先述のように、ほとんどXを使っていないため +no_x11 で入れてます*1。ですから、例えば display コマンドが欲しい1なんかはまたちょっと違ったやり方になるはずです。ご注意ください。

$ gem install RMagick

という感じで入りました。同じような問題で悩んでいる方はご参考まで。

*1:convertとlibMagick++.dylibが欲しかった