Engineer as a Lifestyle @tenkoma

What We Find Changes Who We Become -- Peter Morville著『アンビエント・ファインダビリティ 』

MTOSのインストール

MTOSをMBPにインストールした。
Perlは /usr/bin/perl ではなく、MacPortsの /opt/local/bin/perl を使うようにする
インストールしたときにはまったのは次の2点だった

mt-wizard.cgiで実行中に、DBD::Mysqlなどが無いと指摘される

cgiを実行するユーザ(_www)のシェルで"which perl"すると "/opt/local/bin/perl" になっているのになんでなのかというと、shebangで指定されているからだった。ので、CGIPath/mt*.cgiの1行目をすべて編集することにした。/usr/bin/perlをバックアップして/opt/local/bin/perlシンボリックリンクを張る作業ログを見つけたがそれはしたくなかった。

#!/usr/bin/perl -w

これを

#!/opt/local/bin/perl -w

こうです。

perlMagickのインストール

オプションのライブラリもportでインストールすると楽。で、インストールしてログイン後にImage::Magickを入れないとサムネイルがうんぬんというメッセージがでたので、次のようにした

sudo port install p5-perlmagick

すると次のようなエラーが。

Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_perl_p5-perlmagick/work/PerlMagick-6.32" && make all " returned error 2
Command output: Magick.xs:10918: error: request for member 'severity' in something not a structure or union
Magick.xs:10918: error: 'ErrorException' undeclared (first use in this function)
Magick.xs:10919: error: 'struct Methods' has no member named 'exception'
Magick.xs:10920: warning: implicit declaration of function 'GetImageException'
Magick.xs:10922: error: dereferencing pointer to incomplete type
Magick.xs:10922: error: request for member 'image_info' in something not a structure or union
Magick.xs:10922: error: 'struct Methods' has no member named 'adjoin'
Magick.xs:10929: error: request for member 'severity' in something not a structure or union
Magick.xs:10929: error: 'UndefinedException' undeclared (first use in this function)  
Magick.xs:10929: error: request for member 'severity' in something not a structure or union
Magick.xs:10929: error: request for member 'reason' in something not a structure or union
Magick.xs:10929: error: request for member 'severity' in something not a structure or union
Magick.xs:10929: error: request for member 'reason' in something not a structure or union
Magick.xs:10929: warning: pointer/integer type mismatch in conditional expression
Magick.xs:10929: error: request for member 'description' in something not a structure or union
Magick.xs:10929: error: request for member 'description' in something not a structure or union
Magick.xs:10929: error: request for member 'severity' in something not a structure or union
Magick.xs:10929: error: request for member 'description' in something not a structure or union
Magick.xs:10929: warning: pointer/integer type mismatch in conditional expression
Magick.xs:10929: error: request for member 'description' in something not a structure or union
Magick.xs:10929: warning: passing argument 2 of 'Perl_sv_catpv' from incompatible pointer type
Magick.xs:10929: warning: unused variable 'message'
Magick.xs:10856: warning: unused variable 'filename'
Magick.c:10784: warning: unused variable 'ref'
Magick.c:10777: warning: unused variable 'ix'
Magick.xs: In function 'boot_Image__Magick':
Magick.xs:2122: warning: implicit declaration of function 'InitializeMagick'
Magick.xs:2123: warning: implicit declaration of function 'SetWarningHandler'
Magick.xs:2124: warning: implicit declaration of function 'SetErrorHandler'
make: *** [Magick.o] Error 1

Error: Status 1 encountered during processing.

Google検索で同じような事例が無いか調べたところ途中で、ImageMagickのvariantsで指定すればいいという方法を見つけた。
こちらの方法でうまくいった。

sudo port -f uninstall ImageMagick
sudo port install ImageMagick +perl

ImageMagickのビルドにはちょっと時間がかかるので、めんどくささを感じたけれども。