Movable Typeが嫌い

タイトル通り。

Movable Typeが嫌い。サーバ管理者の立場として、だが。

古いサーバのリプレースで、コンテンツやDBを新サーバへ総引越し。
その中に古いMovable Type(ver3.1)が動いてる。
rsyncでそのままコピーしたものの、(Perlモジュールの)あれが足りないこれが足りない、とウルサイ。
まぁそれだけならひとつづつインストールしていけばいい。


mt-check.cgiも動いてエラーも無し。
念のため管理ページにログインして記事を投稿。再構築すると・・・・

Invalid version format (non-numeric data) at /htdocs/blog/lib/MT/Template/Context.pm line 407.

なるエラーが。


いつも通りgoogle先生に聞いてみるもイマイチ分からん。
Perlモジュールにversionっていうモジュールがあり、それの仕様が変わって
戻り値が恐らく数値型じゃなくなったのだろう。
ってところまでは分かった。が、これの修正方法が分からん。
versionというPerlモジュールを古いバージョンにするか、Movable Type側でどうにかするしかない。


もちろん開発元のSix Apartに聞けばいいんだろうけど、保守契約がどうの、バージョンが古い(現在の最新はVer5らしい)から
アップデートしろ、だの言われるのが目に見えて、それよりも今日中になんとかしなくてはいけないので、
そんな(サポートに聞くような)無駄な時間はかけたくない。
過去に何度か問い合わせもしたが、SixApart社のサポートの対応っぷりはM$と同程度、といった印象しかない。


ということで、有償ソフトってことはもう忘れて、Movable Typeのソースを読み始める。
そこでタイトルにもどるが「Movable Typeが嫌い」
なんの案件だったかは忘れたけど、数年前にもMovableTypeでドはまりしたことがあって、
それ以来、ともかく嫌い。


ソースがPerlなのはいいとして、そのソースコードの分かりにくさ世界選手権があれば間違いなく
No.1だろうと思うくらい分かりずらい。
オープンソースの世界にドップリ浸かってると、そもそもこんなものが
未だに「有償」というのが不思議。WordPressでいいじゃん。


問題のエラーが出てる箇所が、

sub _hdlr_mt_version {
    require MT;
    my $version = MT->VERSION;

単純にMTのバージョン番号を返してるだけじゃないの?なんでそんなんで致命的なエラーになるの??と
?マークのオンパレード。ますます嫌悪感が増して行く。


しばらく我慢して読んでたけど、もう面倒くさくなって、そもそもバージョン番号を返してるだけなら
それを数値で返してやればいいじゃん、と。

sub _hdlr_mt_version {
    require MT;
    my $version = '3.17';

・・・問題解決(笑)


もしまたこのサーバのリプレースが必要になったら、
その時は間違いなくWordPressに移行してもらおう。
もうMTで悩まされるのは二度とイヤじゃ。