CentOS 7へPostfix(VDAパッチ有)をインストール
CentOS 7では、Postfixは2.10.1がインストールされ自動起動しています。標準のpostfixでは、メールボックスの容量制限(quota)を使えません。Postfix VDAで配布しているパッチを組み込んだ、Postfixをインストールします。
Postfix 2.10.1+VDAパッチをインストールするうえで次を参照しました(他にもちょこちょこ)。
インストール前の環境
それぞれ次の状況となっています。
- CentOS 7: 7.7.1908 (Core)
- MariaDB: 10.4.12-1
- Postfix: 2.10.1-7
CentOS 7.8.2003では、Postfixは2.10.1-9に上がっています。/etc/yum.confファイルでpostifxをexcludeしているとyum info postfixでは新しいReleaseを知ることが出来ません。excludeを解除すればyum info postfixで出てきますが、皆さんどうされているのでしょう?
PostfixのRPMおよびVDAパッチをダウンロード
PostfixのRPMをソースでダウンロードします。
$ sudo yumdownloader postfix --source
$ ls
postfix-2.10.1-7.el7.src.rpm
Postfix 2.10.1に対応したVDAパッチをダウンロードします。
$ curl -O http://vda.sourceforge.net/VDA/postfix-vda-v13-2.10.1.patch
PostfixのRPMをインストールし、VDAパッチを適用
Postfixのsrc.rpmをインストールし、VDAパッチをソースディレクトリへ移動します。
$ sudo rpm -ivh ./postfix-2.10.1-7.el7.src.rpm
$ sudo su
# mv postfix-vda-v13-2.10.1.patch ~/rpmbuild/SOURCES/
postfix.specファイルへVDAパッチの情報を追加します。赤文字が編集部分
# cd ~/rpmbuild/SPECS/
# ls
postfix.spec
# vim postfix.spec
(yum infoで表示する情報を編集 44行付近)
Name: postfix
Summary: Postfix Mail Transport Agent
Version: 2.10.1
Release: 7_VDA%{?dist}
Epoch: 3
Group: System Environment/Daemons
(途中略 88行付近)
Patch11: postfix-2.10.1-canonical-maps-doc-fix.patch
Patch12: postfix-2.10.1-kernel-4-fix.patch
Patch13: postfix-vda-v13-2.10.1.patch (← 追加)
(途中略 148行付近)
%patch3 -p1 -b .alternatives
%patch8 -p1 -b .large-fs
%patch13 -p1 -b .VDA (← 追加)
%if %{with pflogsumm}
buildする前の環境準備で次をインストールします。
# yum -y install rpm-build gcc patch libdb-devel zlib-devel openldap-devel cyrus-sasl-devel pcre-devel MariaDB-devel openssl-devel
rpmbuild・・・、失敗
# rpmbuild -ba --clean postfix.spec
(途中略)
/bin/ld: cannot find -lmysqlclient
collect2: error: ld returned 1 exit status
make: *** [master] Error 1
make: *** [update] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.v8Q1hq (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.v8Q1hq (%build)
mysqlclientが見つからない。MariaDB-sharedが不足しているようです。
# yum -y install MariaDB-shared
もう一度、rpmbuild
# rpmbuild -ba --clean postfix.spec
今度は、buildが通ったのでインストールします。その前にpostfixは自動起動に設定されているので停止します。postfix.specファイルでReleaseを変更しているので、rpmのファイル名が少し変わっています。
# ls ~/rpmbuild/RPMS/x86_64
postfix-2.10.1-7_VDA.el7.x86_64.rpm postfix-perl-scripts-2.10.1-7_VDA.el7.x86_64.rpm
postfix-debuginfo-2.10.1-7_VDA.el7.x86_64.rpm
# systemctl stop postfix
# rpm -Uhv ~/rpmbuild/RPMS/x86_64/postfix-2.10.1-7_VDA.el7.x86_64.rpm
postfixのパッケージ情報を確認します。
# yum info postfix
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: d36uatko69830t.cloudfront.net
* extras: d36uatko69830t.cloudfront.net
* updates: d36uatko69830t.cloudfront.net
Installed Packages
Name : postfix
Arch : x86_64
Epoch : 3
Version : 2.10.1
Release : 7_VDA.el7
Size : 12 M
Repo : installed
Summary : Postfix Mail Transport Agent
URL : http://www.postfix.org
License : IBM and GPLv2+
Description : Postfix is a Mail Transport Agent (MTA), supporting LDAP, SMTP AUTH (SASL),
: TLS
インストールが終わったらpostfixを起動して、VDA拡張されているか確認します。
$ sudo systemctl start postfix
$ postconf | grep virtual_maildir
virtual_maildir_extended = yes
virtual_maildir_filter = no
virtual_maildir_filter_maps =
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_maildir_limit_message_maps =
virtual_maildir_suffix =
インストール後に、今後のyum updateでpostfixが更新されないように、更新除外を設定します。
$ sudo vim /etc/yum.conf
(以下を追加)
exclude=postfix*
フォローしませんか?
コメント