Postfixインストール(rpmパッケージ作成編)


src.rpmから「Postfix」のパッケージを作成してインストールを行います。

(1)「Postfix」のsrc.rpmをダウンロードする。
[root@mail1 ~]# wget http://ftp.riken.jp/Linux/centos/5.4/os/SRPMS/postfix-2.3.3-2.1.el5_2.src.rpm ← CentOS5.4の場合
[root@mail1 ~]# wget http://ftp.riken.jp/Linux/centos/5.5/os/SRPMS/postfix-2.3.3-2.1.el5_2.src.rpm ← CentOS5.5の場合

)CentOSリポジトリで管理している「postfix」はバージョンが低い

(2)デフォルトの「postfix」では、バーチャル環境でMaildir形式のメールボックスを使用する際にうまく動作しないと言う問題がある。その問題を解決するため「VDA」パッチをダウンロードする。
[root@mail1 ~]# wget http://vda.sourceforge.net/VDA/postfix-2.3.3-vda.patch.gz

(3)ダウンロード終了後、rpmコマンドを使いsrc.rpmをインストールする。
[root@mail1 ~]# rpm -ivh postfix-2.3.3-2.1.el5_2.src.rpm
   1:postfix                警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
########################################### [100%]
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します

このように警告が出てくるが問題ない。
これは、「mockbuild」ユーザがいないため出てくる警告です。変わりに「root」を使用する。

(4)「VDA」パッチを解凍し「/usr/src/redhat/SOURCES」の中にコピーする。
[root@mail1 ~]# gunzip postfix-2.3.3-vda.patch.gz
[root@mail1 ~]# cp postfix-2.3.3-vda.patch /usr/src/redhat/SOURCES

(5)「spec」ファイルを編集する。
[root@mail1 ~]# cd /usr/src/redhat/SPECS/
[root@mail1 SPECS]# vi postfix.spec
%define MYSQL 0
↓# 変更
%define MYSQL 1

Patch11: postfix-2.3.3-vda.patch ← # 84行目に追加
%patch11 -p1 -b .vda ← # 140行目に追加

(6)「Postfix」のビルドに必要なパッケージをインストールする。
[root@mail1 SPECS]# yum -y install gcc rpm-build db4-devel pkgconfig zlib-devel openldap-devel cyrus-sasl-devel pcre-devel mysql-devel openssl-devel

(7)「Postfix」のrpmパッケージを作成する。
[root@mail1 SPECS]# rpmbuild -ba postfix.spec

(8)パッケージ作成後、「Postfix」のインストールを行う。
[root@mail1 SPECS]# cd /usr/src/redhat/RPMS/i386
[root@mail1 i386]# rpm -ivh postfix-2.3.3-2.1.i386.rpm
準備中...                ########################################### [100%]
   1:postfix                ########################################### [100%]

(9)「Postfix」がMySQLに対応したか確認する。
[root@mail1 i386]# postconf -m
btree
cidr
environ
hash
ldap
mysql
nis
pcre
proxy
regexp
static
unix

上のように「mysql」が表示されていること。

(10)デフォルトの「sendmail」から「Postfix」に変える。
[root@mail1 ~]# alternatives --config mta
2 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2 ← # postfixに変更

(11)「Postfix」を起動する。
[root@mail1 ~]# /etc/rc.d/init.d/postfix start
postfix を起動中:                                          [  OK  ]
[root@mail1 ~]# chkconfig sendmail off
[root@mail1 ~]# chkconfig postfix on

)「sendmail」が起動していると「postfix」は起動しません。

(12)「yum」の自動アップデートを行っている場合は以下の作業を行う。
「rpm」でインストールを行ったので「yum」のソフト自動アップデートを利用している場合、もし「postfix」のバージョンが上がるとアップデートを行ってしまいパッチが剥がれてしまう。
そのため、「yum」による自動アップデート時に「postfix」はアップデートしないようにする。
[root@mail1 ~]# vi /etc/yum.conf
#--以下を最終行に追加--
exclude=postfix*

Comments are closed.