自宅でメール受信が出来なくなった。LAN内サーバで動かしているPOPFileが死んだかと思って確認するとやっぱり死んでた。毎日6:00にcronでPOPFileを再起動させてるが、起動に失敗してる模様。確認すると手動で起動出来ない。前日にapt-getでperlのセキュリティアップデートをしたのでそのせいか、と思い調査。
手動でpopfile.plを起動すると、
$ ./popfile.pl
ERROR: POPFile needs Perl module IO::Socket, please install it.
ERROR: POPFile needs Perl module IO::Socket::INET, please install it.
POPFile Engine loading
Loading...
{core: logger config history mq}
{classifier: bayes wordmangle}
Bareword "SOMAXCONN" not allowed while "strict subs" in use at /UI/XMLRPC.pm line 125.
Compilation failed in require at /POPFile/Loader.pm line 392.
別にIOがないとかそーゆーことはないのにエラーが。とりあえずCPANでモジュールのアップデートでもするかなと思い、
# perl -MCPAN -e shell
Terminal does not support AddHistory.
cpan shell -- CPAN exploration and modules installation (v1.9205)
ReadLine support available (maybe install Bundle::CPAN or Bundle::CPANxxl?)
cpan[1]> report
CPAN::Reporter not installed; cannot continueCPAN: Storable loaded ok (v2.18)
CPAN: LWP::UserAgent loaded ok (v2.036)
CPAN: Time::HiRes loaded ok (v1.9712)
Fetching with LWP:
ftp://ftp.kddilabs.jp/CPAN/authors/01mailrc.txt.gz
LWP failed with code[500] message[Errno architecture (i486-linux-gnu-thread-multi-2.6.22-3-amd64) does not match executable architecture (i486-linux-gnu-thread-multi-2.6.24.4) at /usr/local/share/perl/5.8.8/Errno.pm line 11.
Compilation failed in require at /usr/local/lib/perl/5.8.8/IO/Socket.pm line 17.
BEGIN failed--compilation aborted at /usr/local/lib/perl/5.8.8/IO/Socket.pm line 17.
Compilation failed in require at /usr/local/share/perl/5.8.8/Net/FTP.pm line 18.
BEGIN failed--compilation aborted at /usr/local/share/perl/5.8.8/Net/FTP.pm line 18.
Compilation failed in require at /usr/local/share/perl/5.8.8/LWP/Protocol/ftp.pm line 24.
]
Fetching with Net::FTP:
ftp://ftp.kddilabs.jp/CPAN/authors/01mailrc.txt.gz
Terminal does not support GetHistory.
Lockfile removed.
Can't locate object method "new" via package "Net::FTP" at /usr/local/share/perl/5.8.8/CPAN.pm line 3837.
あれぇ?
と、よく見ると
(i486-linux-gnu-thread-multi-2.6.22-3-amd64) does not match executable architecture (i486-linux-gnu-thread-multi-2.6.24.4) at /usr/local/share/perl/5.8.8/Errno.pm line 11
これはerrnoモジュールでカーネルのバージョン番号の不整合が起きてるってことか。
じゃあerrnoモジュール再構築かということで、
% wget ftp://ftp.kddlabs.co.jp/CPAN/authors/id/G/GB/GBARR/Errno-1.10.tar.gz
% tar xzvf Errno-1.10.tar.gz
% perl Makefile.PL
% make
% make test
% sudo make install
で完了。その後POPFileは無事起動。
$ ./popfile.pl
POPFile Engine loading
Loading...
{core: logger config history mq}
{classifier: bayes wordmangle}
{interface: xmlrpc html}
{proxy: nntp smtp pop3}
{services: imap}
POPFile Engine v1.0.0 starting
apt-get upgradeした時にここらへんの整合性って自動で合わないもんなのかな。まあたいした手間はかからんのだけど、めんどくさいといえばめんどくさい。