« 火星に青い夕陽が沈む | トップページ | 交響楽団たんぽぽ 第7回演奏会 »

2011.01.19

ImageMagickとPerlMagick (MacPorts)

Mac OS X 10.5.8(Leopard)で、PerlからImageMagickを使おうと思ったのだけどちょっとハマったのでメモ。

ImageMagickをPerlから使うためのモジュールPerlMagickは、MacPortsでは"p5-perlmagick"という名前で入っている。
これをportコマンドで入れるだけ……と思ったら、エラーが出てインストールできない。ネットを見たら、他にもエラーで入らないという人がちらほら。

*MacPortsからp5-perlmagickをインストールするとエラー

----------------------------------------------------
[Users/ozuma] > install p5-perlmagick
---> Computing dependencies for p5-perlmagick
---> Building p5-perlmagick
Error: Target org.macports.build returned: shell command failed (see log for details)
Log for p5-perlmagick is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_perl_p5-perlmagick/main.log
Error: Status 1 encountered during processing.
To report a bug, see
----------------------------------------------------

どうしようかと元のImageMagickパッケージのvariantsを見ると、オプションでperlサポートというのがある。

----------------------------------------------------
macbook:~ ozuma$ port variants ImageMagick
ImageMagick has the variants:
graphviz: Support Graphviz
hdri: Support High Dynamic Range Imaging using OpenEXR
jbig: Support JBIG
jpeg2: Support JPEG-2000 using JasPer
lqr: Support Liquid Rescale (experimental)
mpeg: Support MPEG-1 and MPEG-2 video
no_plus_plus: Do not install Magick++
no_x11: Disable support for X11
perl: Install PerlMagick
[+]q16: Use 16 bits per pixel quantum
* conflicts with q32 q8
q32: Use 32 bits per pixel quantum
* conflicts with q16 q8
q8: Use 8 bits per pixel quantum
* conflicts with q16 q32
rsvg: Support SVG using librsvg
universal: Build for multiple architectures
wmf: Support the Windows Metafile Format
----------------------------------------------------

というわけで、こちらから入れれば行けそうだ。具体的にはコマンドとして、

$ sudo port install ImageMagick +perl
と打てばよい。
ちなみにこのままだとx11関連を山ほど入れようとして大変なので、displayコマンドとかを使わないなら +no_x11 オプションも付けた方が良いっぽい。
$ sudo port install ImageMagick +perl +no_x11

これで後は、Perlプログラムから use Image::Magick; すればいいだけ……なのだがもう一つ落とし穴がある。MacPortsはなんと、OS標準のPerl(/usr/bin/perl)と違ってMacPorts版のPerlを/opt/local/bin/perlに入れてしまうのだ。
そのため、Perlスクリプトの先頭を、

#!/opt/local/bin/perl
にするか、もしくは/usr/bin/perlを/opt/local/bin/perlへのシンボリックリンクにしないといけない。
$ cd /usr/bin/
$ sudo mv perl perl.org
$ sudo ln -s /opt/local/bin/perl /usr/bin/perl

つまりMacPortsで環境を揃えると、以後はMacOS標準のPerlを捨ててport版Perlを使わないとダメなわけだ……なんか不安だなぁ。

|

« 火星に青い夕陽が沈む | トップページ | 交響楽団たんぽぽ 第7回演奏会 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 火星に青い夕陽が沈む | トップページ | 交響楽団たんぽぽ 第7回演奏会 »