postfix2.10系のパッケージ作成

2013.05.10 Author: 443

どうもお久しぶりです。443 です。

**独り事**
F1第5戦スペインGP始まりました。
アロンソがんばれ、ピレリタイヤ持つのか?
**独り事**

postfixをコンパイル後、rpmパッケージ化した時の手順を記載します。

以下の状況が発生したため、postfixをパッケージ化するに至りました。
1. CentOS5系で、最新であるpostfix2.10系の検索テーブルとして、MySQLを利用したい。
ついで、postscreenを使用し、Spamを撃退したい。
2. ソースからのコンパイル後インストールは行なわない。


次に各条件に対する私の見解をお伝えします。

1.の条件が、もしCentOS6系であったとしても、CentOSの標準のpostfixでは、
postfix2.6までしか存在しません。2.6ではMySQL対応していますが、
postscreen導入には、2.8以上が必要です。
ちなみに、CentOS5系のyumで使用しているpostfix2.3.3ですが、
2006年8月30日のリリースなんですね。ものすごい昔です。

2. ソースからのコンパイルであればMySQLが利用可能だが、
どうやって、バージョン管理しようかが悩みどころです。
アンインストールしようにも、どのフォルダにどのファイルが
インストールされたのかを把握する必要があります。
削除したいときに削除できないのであればそれはスマートではない。

では、postfix2.10系のパッケージ作成に入ります。
■ checkinstallインストール
・checkinstallコンパイル環境をインストールする

# yum install gettext

・/rootへ移動する

# cd /root

・gitコマンドを使用し、chekinstallソースファイルをダウンロードする

# git clone http://checkinstall.izto.org/checkinstall.git

・cd checkinstall ディレクトリに移動する

# cd /checkinstall

・Maikefileを編集する

# cp -p Makefile Makefile.orig
# vi Makefile
---7行目を以下に変更する--------
CONFDIR=$(PREFIX)
---------------------

・checkinstallrc-dist を編集する

# cp -p checkinstallrc-dist checkinstallrc-dist.orig
# vi checkinstallrc-dist
---120行目を以下に変更する-----
EXCLUDE="/selinux"
-------------------------------

・installwatch/Makefile ファイルを編集する

# cp -p installwatch/Makefile installwatch/Makefile.orig
# vi installwatch/Makefile
---14行目を以下に変更する--
LIBDIR=$(PREFIX)/lib64
---------------------------

・makeコマンドを実施する

# make

・make installコマンドを実施する

# make install

・checkconfigコマンドのインストール先を確認する

# which checkinstall
/usr/local/sbin/checkinstall

■ checkinstallをRPM化
・/root/rpmbuild/SOURCESを作成

# mkdir -p /root/rpmbuild/SOURCES


・checkinstallコマンドを実行
# checkinstall
Should I create a default set of package docs? [y]:y
Slackware [S], RPM [R] or Debian [D]?R
Enter a number to change any of them or press ENTER to continue: [Enter]

**********************************************************************

Done. The new package has been saved to

/usr/src/redhat/RPMS/x86_64/checkinstall-20130510-1.x86_64.rpm
You can install it in your system anytime using:

rpm -i checkinstall-20130510-1.x86_64.rpm

**********************************************************************


・checkinstallパッケージをインストール
# rpm -ivh /usr/src/redhat/RPMS/x86_64/checkinstall-20130510-1.x86_64.rpm

・checkinstallパッケージのインストール確認

# rpm -qa checkinstall
checkinstall-20130510-1

■ postfix 2.10.0をRPM化
・postfixをmakeまで実施する、※make installは実施しない
省略します。

# make

・インストールディレクトリを作成する

# mkdir -p /etc/postfix
# touch /etc/postfix/postfix-script
# chmod 777 /etc/postfix/postfix-script

# mkdir -p /usr/libexec/postfix
# touch /usr/libexec/postfix/postfix-script
# chmod 777 /usr/libexec/postfix/postfix-script

・checkinstallを実施する

# checkinstall --install=no --review-spec 
Should I create a default set of package docs? [y]:y
Slackware [S], RPM [R] or Debian [D]? R
Please write a description for the package.
End your description with an empty line or EOF.
>> [Enter]
Enter a number to change any of them or press ENTER to continue: [Enter]
install_root: [/] [Enter]
tempdir: [/root/postfix-2.10.0] /tmp/postfix-2.10.0
config_directory: [/etc/postfix] [Enter]
command_directory: [/usr/sbin] [Enter]
daemon_directory: [/usr/libexec/postfix] [Enter]
data_directory: [/var/lib/postfix] [Enter]
html_directory: [no] [Enter]
mail_owner: [postfix] [Enter]
mailq_path: [/usr/bin/mailq] [Enter]
manpage_directory: [/usr/local/man] /usr/share/man
newaliases_path: [/usr/bin/newaliases] [Enter]
queue_directory: [/var/spool/postfix] [Enter]
readme_directory: [no] [Enter]
sendmail_path: [/usr/sbin/sendmail] [Enter]
setgid_group: [postdrop] [Enter]


Press ENTER to continue. [Enter]
そのままviを閉じる

**********************************************************************

Done. The new package has been saved to

/usr/src/redhat/RPMS/x86_64/postfix-2.10.0-1.x86_64.rpm
You can install it in your system anytime using:

rpm -i postfix-2.10.0-1.x86_64.rpm

**********************************************************************


■ postfix rpm パッケージのインストール

・インストールを実施

# rpm -ivh /usr/src/redhat/RPMS/x86_64/postfix-2.10.0-1.x86_64.rpm

・インストール確認

# rpm -qa postfix
postfix-2.10.0-1

・/etc/yum.confの編集

# vi /etc/yum.conf
---最終行に以下を追加---
exclude=postfix*
------------------------

・yum update postfix コマンドにて、最新版にアップされないことを確認
# yum update postfix

・postconfコマンドにて、mysqlが表示されることを確認する

# postconf -m | grep mysql
mysql

・postconfコマンドで、バージョン2.10であることを確認する
# postconf  | grep "mail_version ="
mail_version = 2.10.0

■ postfix rpmパッケージの一旦アンインストール
・一旦アンインストールする

# rpm -e postfix

・アンインストールを確認する

# rpm -qa postfix
何も表示されない

・再度イントールを実施する

# rpm -ivh /usr/src/redhat/RPMS/x86_64/postfix-2.10.0-1.x86_64.rpm

■ 以上で、CentOS5におけるpostfixパッケージ作成終了です。
他のパッケージ作成の手助けになればです。

それでは、失礼します。

名古屋のWebシステム開発・ネットワーク構築会社 コネクティボへ