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のビルドにはちょっと時間がかかるので、めんどくささを感じたけれども。