portsのPostfix
portsの存在を知らない頃にインストールした、つまりソースコンパイルでインストールしたPostfixと、portsでインストールしたpostfixが同居しちゃう話。
ソースコンパイルしたPostfixの場合、/usr以下にインストールします。一方でPortsだと、/usr/local以下にインストールします。
これだと見事に棲み分けてしまい、同居状態になります。
さてこれの問題はBDBをpostmapコマンドで作成した時に、環境変数PATHによりますけど、postmapコマンドがソースコンパイルの方に行っちゃう事です。
するとPortsでインストールして起動している方は下記のようなエラーを出します。
Aug 23 11:53:15 top postfix/trivial-rewrite[4337]: fatal: open database /etc/postfix/virtual-hash.cf.db: Invalid argument Aug 23 11:53:15 top postfix/cleanup[4338]: fatal: open database /etc/postfix/virtual-hash.cf.db: Invalid argument Aug 23 11:53:16 top postfix/master[36674]: warning: process /usr/local/libexec/postfix/trivial-rewrite pid 4337 exit status 1 Aug 23 11:53:16 top postfix/master[36674]: warning: /usr/local/libexec/postfix/trivial-rewrite: bad command startup -- throttling Aug 23 11:53:16 top postfix/master[36674]: warning: process /usr/local/libexec/postfix/cleanup pid 4338 exit status 1 Aug 23 11:53:16 top postfix/master[36674]: warning: /usr/local/libexec/postfix/cleanup: bad command startup -- throttling ...
こんな感じで。
対策は簡単で、/usr/sbin/post* を消したら良いだけです。後、/usr/libexec/postfix も消した方がよろしいかも。
消した後で気味悪いと思うなら、portsで、reinstallをおすすめ。
追記
エラーの原因書かずに私は一体何を書いてるんだ。
上の、Postfixのエラーの原因は、BDBのバージョンが合わずにPostfixが異常終了しているのです。
つまり、Portsで入れたPostfixと、ソースコンパイルしたPostfixのBDBのバージョンが違う場合、上記のような阿呆な事にハマりますよと言いたいのです。