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*

前へ

CentOS7へMariaDBをインストールしよう

次へ

Amazon EC2を試しています