CentOS 5.6 をメールサーバーに (Postfix のインストール [補足])

数ヶ月前に、「CentOS 5.6 をメール サーバーに」という一連のタイトルの記事を書いた。
暫く間が空いたが、今回はその中の「Postfix に MySQL サポートを追加する」と「Postfix のインストール」の記事に関して、これとは別の手順を説明する。

Postfix に MySQL サポートを追加する」と「Postfix のインストール」の記事の中で、以下のようなことを述べている。

メール アカウントの管理を容易にするために PostfixAdmin を使いたい。
しかしながら、CentOS の標準リポジトリで提供されている Postfix だと、PostfixAdmin がメール アカウントを格納する MySQL のデータベースが扱えない。
Postfix で MySQL のデータベースに格納したメール アカウントを扱うためには、CentOS Plus のリポジトリを有効にして、そこから Postfix のパッケージを入手する必要がある。
MySQL のデータベースが参照できることに加えて、Postfix で quota を効かせられるようにするために、CentOS Plus のリポジトリから入手した Postfix のソースを元に再コンパイルしなくてはらない。

このような理由で、実際にCentOS Plus のリポジトリから Postfix のパッケージのソース コードを入手した上で、quota を有効にするための VDA パッチの適用に加えて、不要になる Postgrey のデータベースを参照する機能を無効にして、再コンパイルしている。

実を言えば、quota を利用しなくてもよいのであれば、わざわざ再コンパイルするという手間を掛けることはない。
CentOS Plus のリポジトリから Postfix パッケージを直接インストールする方法でも、PostfixAdmin との連携が実現可能だ。
注意点としては、使うつもりのないサービスがひとつ強制的にインストールされるので、ディスクの容量を少々余計に食ってしまうということだろうか。

その方法は、「Postfix に MySQL サポートを追加する」でも既に書いたように yum --enablerepo centosplus install postfix を実行するだけなのだが、何も考えずにこのまま素直に実行すると、後でとんでもない目に遭う

先のコマンドは centosplus リポジトリを明確に指定して、そのリポジトリにある Postfix のパッケージを使ってインストールするという意味になる。
ところが、Postfix のパッケージは base リポジトリにもあるため、Postfix をインストールした後に何気に yum update とすると、base リポジトリにある Postfix のパッケージで上書きされてしまうことになる。
さらに、現時点では無いが update リポジトリに Postfix パッケージが追加されるときには、それは base リポジトリにあるものの上位バージョンになるため、それで上書きされるかもしれない。
base リポジトリや update リポジトリの Postfix パッケージで上書きされると、その途端に MySQL との連携が取れなくなってしまう。

このような自体を避けるために、どのリポジトリにある Postfix のパッケージを使うかを、yum の設定に記述する。
対象となる設定ファイルは /etc/yum.repos.d/CentOS-Base.repo ファイルだ。

CentOS をインストールした状態では centos リポジトリは無効になっているため、まずはこれを有効にするために /etc/yum.repos.d/CentOS-Base.repo ファイルの 42 行目付近の centosplus セクションにある enabled=0enabled=1 に修正する。
次いで、同じく /etc/yum.repos.d/CentOS-Base.repo ファイルの 19 行目付近の base セクションと 27 行目付近の update セクションに exclude パラメーター行を追加して exclude=postfix として、それらのリポジトリの Postfix パッケージを使用しないようにする。
さらに 44 行目付近の centosplus セクションに includepkgs パラメーター行を追加して includepkgs=postfix として、そのリポジトリでは Postfix パッケージをだけを使用するようにする。

以上の修正箇所を纏めると以下のようになる。

このような設定をしてしまえば後は普通に yum install postfix--enablerepo centosplus オプション スイッチを付けること無しに MySQL のデータベース (と PostgreSQL のデータベース) を参照可能な Postfix をインストールできる。
Postfix をインストールして必要な設定をした後で、 yum update を実行しようが何の心配も無い。

このような設定をしてから yum install postfix を実行して MySQL のデータベース (と PostgreSQL のデータベース) を参照可能な Postfix をインストールすると、依存関係によって MySQL だけでなく PostgreSQL も一緒にインストールされる。
PostgreSQL が不要でも、これをアンインストールしてはいけない。
PostgreSQL をアンインストールすると依存関係の制約によって Postfix もアンインストールされてしまう。

そこで PostgreSQL をアンインストールするのではなく、動かないようにする。
もっとも CentOS ではパッケージをインストールしただけで、サービス (デーモン) が自動的に起動するようにはなっていないので、このまま放っておいてもいいだろう。
念のため程度の意味で、 service postgresql stopchkconfig postgresql off の二つのコマンドを実行しておいてもいいだろう。

ここまでできれば、後は「Postfix のインストール」の記事の MySQL サーバーに Postfix が接続するためのユーザーとパスワードを登録するところ以降と全く同じ手順だ。
MySQL サーバーに Postfix が接続するためのユーザーとパスワードを登録したら、 /etc/postfix/virtual_domains.cf/etc/postfix/virtual_mailbox.cf/etc/postfix/virtual_alias_domain_mailbox.cf/etc/postfix/virtual_alias.cf/etc/postfix/virtual_alias_domain.cf/etc/postfix/virtual_alias_domain_catchall.cf の六つのファイルの作成と進めていって欲しい

コメントを残す