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システム開発・ネットワーク構築会社 コネクティボへ