CentOS4でprocmail経由で添付ファイルを自動処理するperlプログラムがいつからか動かなくなっていた。
procmail.logを確認したところ、
Can't locate object method "seek" via package "File::Temp" at /usr/lib/perl5/site_perl/5.8
.5/MIME/Parser.pm line 816
というエラーがでている。
色々調べてみた結果、yumでperlのバージョンアップがされたのにもかかわらず、File::Tempのバージョンが上がってないのが原因のようだ。
バージョンを調べるには、
# perl -le 'use File::Temp; print File::Temp->VERSION'
とすればよい。
エラーが出るバージョンは0.14だった。
rpmでFile::Tempをインストールしてみたのだが、うまくバージョンは上がらない。
さらに調べて、最終的にCPANを使ってモジュールをインストールすることにした。
CPANの設定については、こちらのサイトが非常によく書かれていた。
サイトに書かれているとおりにCPANをインストールし、
cpan> install File::Temp
でFile::Tempを0.20にバージョンアップ。
procmailをテストしたところ、今度はIO::Fileでエラーになった。
ふーんだ。もう怖くないぞ。
cpan> install IO::File
で難なく解決(たぶん)。