ここ数日で、自宅サーバの一部で使用している CentOS 5.1 に突然 yum で大量のアップデートが入ってきました。そう、6月 24日に CentOS 5.2 がリリースされたため、yum で一斉に入れ替わっているのです。

DNS, WordPress などなど大半は何の問題もなかったのですが、起動中に不吉なメッセージが。

Mail Virus Scanner (amavisd) を起動中: ERROR: MISSING REQUIRED BASIC MODULES:
  Compress::Zlib
BEGIN failed–compilation aborted at /usr/sbin/amavisd line 171.
                                                           [失敗]

 
メールサーバとウィルスチェッカの橋渡しをする amavisd-new が起動しません。ためしに外からメールを出してテストしてみるも

Jun 27 05:26:07 xxxx postfix/smtp[xxxxx]: connect to 127.0.0.1[127.0.0.1]: Connection refused (port xxxx)

拒否されてしまいます。

nire.com では、例えばプライマリメールサーバを完全にシャットダウンしている場合でも、セカンダリメールサーバが動いていているので、通常は外から届いたメールをロストすることはありません。

ところが、プライマリのメールサーバが生きていて プライマリ上の amavisd-new だけが死んだときは別で、メールサーバはいったんメールを受け取った後、ウィルスチェックのため内部的に amavisd-new に渡そうとした時点で拒否されるので、キューにたまりっぱなしになったり、差出人に返ってしまったりします。

一時期 Fedora で実験用にメールサーバを動かしていたことがありますが、amavisd-new が落ちるのは全然珍しいことではありませんでした。CentOS 5.1 にしてからはウソのように安定していたのですが…。

amavisd-new を更新して…

amavisd-new は、rpmforge から持ってきていて、普段は余計なアップデートをさせないため rpmforge.repo の中で enabled = 0 してあったため、

# yum –enablerepo=rpmforge update amavisd-new

で最新の amavisd-new にしてみます。/etc/amavisd.conf.rpmnew を元に新しい conf を書き起こし、 /etc/init.d/amavisd start するも、あえなく同じエラーメッセージで撃沈。

Compress::Zlib が古いのを何とかしよう

zlib 圧縮ライブラリへの Perl インターフェース Compress::Zlib をアップデートすればいいんでしょ、ええやりますとも、ということで、下記を一つずつ、変更前のクリーンな仮想サーバイメージに戻しては試し、amavisd の起動を試みました。

  • rpmforge から perl-Compress-Zlib などを update
  • CPAN を起動して install Compress::Zlib
  • cpan2rpm –install Compress::Zlib
  • amavisd 中の Compress::Zlib に関連した部分を試しにコメントアウト

….が、すべて失敗。

perl 本体のバージョンが、CentOS 5.2 に含まれるものは 5.8.8 のため、じゃあ perl 本体をアップグレードするか….とも思いましたが、perl に依存しているサービスは他にもあり、バージョン依存関係で無間地獄にハマりそうなジリジリする予感があって、再び元の仮想サーバイメージに戻し、ちがう方法を取ることにしました。

次回、対策編です。

つづく。