Postfix を MySQL とメールクォータに対応させてビルドする
提供:maruko2 Note.
CentOS 4/5 標準の Postfix パッケージは、検索テーブルタイプで MySQL をサポートしていないため、Postfix の SRPM (ソース RPM) の spec ファイルを編集し MySQL に対応させる。
Postfix は、バーチャルでの運用時に、メールボックス形式として Maildir 形式を使用した場合、メールクオータ (Quota) がうまくつかえない問題があるため、対策として VDA パッチを適用してビルドする。(VDA: Virtual Delivery Agent)
MySQL 対応、VDA パッチ済み RPM パッケージ
|
目次 |
必要なもの
- rpm-build パッケージ
- Postfix SRPM
- VDA パッチ
- Postfix 2.3.2: http://vda.sourceforge.net/VDA/postfix-2.3.3-vda.patch.gz
- Postfix 2.2.10: http://vda.sourceforge.net/VDA/postfix-2.2.10-vda.patch.gz
ビルド手順
SRPM から RPM を作成する手順
- RPM を作成する環境を作る
- SRPM をダウンロードし、インストールする
- VDA パッチを ~/rpm/SOURCES/ ディレクトリ内にダウンロードし解凍する
- MySQL 対応と、VDA パッチが適用されるように postfix.spec ファイルを編集
- ビルドする
- 作成した RPM パッケージを使い Postfix をインストールする
1. RPM を作成する環境を作る
2. SRPM をダウンロードし、インストールする
$ rpm -ihv postfix-2.3.3-2.src.rpm
Postfix のソースコードおよびパッチの一式が、~/rpm/SOURCES/ ディレクトリ、spec ファイルが ~/rpm/SPECS/ ディレクトリにインストールされる。
3. VDA パッチを ~/rpm/SOURCES/ ディレクトリ内にダウンロードし解凍する
$ cd ~/rpm/SOURCES/ $ wget http://vda.sourceforge.net/VDA/postfix-2.3.3-vda.patch.gz $ gunzip postfix-2.3.3-vda.patch.gz
4. MySQL 対応と、VDA パッチが適用されるように postfix.spec ファイルを編集
spec ファイルが ~/rpm/SPECS/postfix.spec にあるので、次のように編集する。
%define LDAP 2 %define MYSQL 1 <- 0 から 1 へ変更 %define PCRE 1 # Patches Patch1: postfix-2.1.1-config.patch Patch3: postfix-alternatives.patch Patch6: postfix-2.1.1-obsolete.patch Patch7: postfix-2.1.5-aliases.patch Patch8: postfix-large-fs.patch Patch9: postfix-2.2.5-cyrus.patch Patch10: postfix-2.3.3-vda.patch <- 追加 #Apply obligatory patches %patch1 -p1 -b .config %patch3 -p1 -b .alternatives %patch6 -p1 -b .obsolete %patch7 -p1 -b .aliases %patch8 -p1 -b .large-fs %patch9 -p1 -b .cyrus %patch10 -p1 -b .vda <- 追加
5. ビルドする
$ rpmbuild -ba ~/rpm/SPECS/postfix.spec
~/rpm/RPMS/i386 に RPM パッケージが作成され、~/rpm/SRPMS/ ディレクトリ内に SRPM パッケージが作成される。
- postfix-2.3.3-2.i386.rpm
- Postfix バイナリ RPM
- postfix-pflogsumm-2.3.3-2.i386.rpm
- maillog からサマリを作成する Perl スクリプト。
- postfix-2.3.3-2.src.rpm
- 今回修正した postfix の SRPM パッケージ。
rpmbuild コマンドの例
- spec ファイルから RPM のみ作成
- rpmbuild -bb <spec file>
- spec ファイルから RPM と SRPM を作成
- rpmbuild -ba <spec file>
- spec ファイルから SRPM のみ作成
- rpmbuild -bs <spec file>
6. 作成した RPM パッケージを使い Postfix をインストールする
$ sudo rpm -ihv ~/rpm/RPMS/i386/postfix-2.3.3-2.i386.rpm
rpm コマンドの例
- 新規インストールの場合
- rpm -ihv <package>
- 同一バージョンを上書きインストール
- rpm -ihv --force <package>
- アップグレードの場合
- rpm -Uhv <package>