Movable Type 3.X 再構築時のエラー

先日この Blog でもご報告しましたように、Blog のタイプを Movable Type 2.661 から Movable Type 3.151-ja (日本語版)に変えたところ、Blog の再構築時に下記のようなエラーが表示されるようになってしまいました。

Prototype mismatch: sub Params::Validate::validate_pos vs (\@@) at /home/mt/extlib/Params/ValidatePP.pm line 139.
Prototype mismatch: sub Params::Validate::validate vs (\@$) at /home/mt/extlib/Params/ValidatePP.pm line 370.

エラーが表示されるだけで、特に不都合はないのですが、少し気になってネットで検索しましたところやはりありました。
Google の検索結果
どうもサーバにインストールされている Perl のバージョンが古いせいのようです。

■ Perl のバージョンアップ

FreeBSD 4.X RELEASE ではベースシステムで、Perl5.005_03 がインストールされています。FreeBSD 5.X RELEASE では、ベースシステムで Perl がインストールされていませんので、必要な場合、ports より別途インストールします。

うちのサーバは、FreeBSD4.11 なので、使用している PerlPerl5.005_03 です。それでまたみゅさんのサイトのパールの更新のページを参考に、Perl のバージョンアップをしてみました。

とりあえずうちの FreeBSD4.11 サーバでは Perl は ports からのインストールではないので、単に ports よりインストールできる最新のものをインストールしてみました。
# cd ports /usr/ports/lang/perl5.8
# make install clean
# rehash
# use.perl port
# perl -v

とすると、
This is perl, v5.8.6 … と出てきます。
でもって
# use.perl system
# perl -v

とすると、
This is perl, version 5.005_03 …
と切り替わります。

この後 Blog の再構築をしてみると、上手く行ったらしくエラーが出なくなりました。しかし喜んでいたのもつかの間、うちのレンタル web アルバムを利用されている方から、レンタル web アルバムの編集画面がサーバエラーになって入れませんとメールで言われました。『う?ん、これはどういうことか…?。』とりあえず use.perl system のコマンドで元のバージョンに戻して急場をしのぎました。

■ ImageMagick の再インストール

ネットのサイトには色々な便利なサービスをしてくれているところがありまして、わたしのサイトもそのようなサイトになればといつも思っているのですが…(^^;)、Perl文法チェックツールを提供してくれているところがあります。そこでレンタル web アルバムのソースをチェックしてみたところ、どうも use Image::Magick という部分がエラーの原因のようです。多分 ImageMagick の中の Perl と連携している部分のソースの中に、新しい Perl にリンクされていないソースがあるのではと考えました。それで一度 ImageMagick 自体を
# cd /usr/ports/graphics/ImageMagick
# make deinstall
# make clern

し、もう一度
# use.perl port
でサーバ機の Perl を新しいものにした状態で
# make reinstall
してみたところ、reinstall 中に盛んに found perl5.8.6 といったソースが表示され、新しい Perl との連携が上手く行ったようです。レンタル web アルバムも、問題なく使えるようになりました。

新しく FreeBSD4.11 で web サーバを作る時には、初めに Perl のバージョンアップをしてから、ImageMagick のインストールをすれば、何の問題もないということです。m(^^)m

※ みゅさんのページの「Perlに依存するportsが入っている場合」の意味が今ひとつよく理解できないでいますが、このことなのでしょうか…。(^^;)