RHEL里的postfix默认不支持mysql。
需要重新编译postfix,但是postfix和别的软件联动,所以考虑源码安装后会有一些问题,因此我决定用RHEL提供的postfix的src.rpm包重新制作支持mysql的rpm包。
1.首先下载并安装postfix的src.rpm包
- [root@mail ~]# cd /usr/local/src
- [root@mail src] wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/postfix-2.3.3-2.1.el5_2.src.rpm
- [root@mail src] mkdir -p /usr/src/redhat/SOURCES
- [root@mail src] rpm -ihv postfix-2.3.3-2.src.rpm
2.下载和src.rpm主版本一致的VDA patch包并解压
- [root@mail src] cd /usr/src/redhat/SOURCES
- [root@mail SOURCES] wget http://vda.sourceforge.net/VDA/postfix-2.3.3-vda.patch.gz
- [root@mail SOURCES] gunzip postfix-2.3.3-vda.patch.gz
3.修改postfix.spec文件添加MySql支持
- [root@mail SOURCES] cd /usr/src/redhat/SPECS
- [root@mail SPECS] cp postfix.spec postfix.spec.org
- [root@mail SPECS] vi postfix.spec
- %define MYSQL 0
- 改成
- %define MYSQL 1
- 在# Patches这个段的后面追加
- Patch11: postfix-2.3.3-vda.patch
- 在# Apply obligatory patches这个段后面追加
- %patch11 -p1 -b .vda
4.用rpmbuild生成rpm包,这个地方可能会依赖一些开发包,直接yum安装即可。
- [root@mail SPECS] rpmbuild -ba postfix.spec
- 发现缺少db4-devel openldap-devel cyrus-sasl-devel pcre-devel包
- [root@mail SPECS] yum -y install db4-devel openldap-devel cyrus-sasl-devel pcre-devel
- [root@mail SPECS] rpmbuild -ba postfix.spec
- 这个地方会稍微时间长一点,成功后的rpm包在/usr/src/redhat/RPMS/i386/下
- [root@mail SPECS] ls /usr/src/redhat/RPMS/i386/
- postfix-2.3.3-2.1.i386.rpm postfix-pflogsumm-2.3.3-2.1.i386.rpm
5.已经生成成功了,接下来安装该rpm包,然后看看是否支持MySql
注意:在这一步如果你的系统里已经有postfix的话,而且因为依赖不能先卸载的话,安装的时候加上--force参数,强制替换。
- [root@mail SPECS] rpm -Uhv /usr/src/redhat/RPMS/i386/postfix-2.3.3-2.1.i386.rpm
- [root@mail SPECS] postconf -m
- btree
- cidr
- environ
- hash
- ldap
- mysql
- nis
- pcre
- proxy
- regexp
- static
- unix
看到了吧,已经支持MySql了,O(∩_∩)O哈哈~!
6.因为我们是自己生成的rpm包安装的,所以你不能用yum来更新postfix了,否则新版本替换我们的版本后,又不支持MySql了,因此我们从yum里设置不让更新postfix。
- [root@mail SPECS] cp /etc/yum.conf /etc/yum.conf.org
- [root@mail SPECS] vi /etc/yum.conf
- 追加一句
- exclude=postfix*
这样yum更新的时候如果有新的版本postfix,不会默认执行更新,但是会提示我们。我们就可以去下载新的src.rpm包然后用同样的方法制作新的rpm包。
题外话:
在做这个工作的同时,发现CentOS的centosplus源里已经提供了支持MySql和Pgsql的postfix包。
(你可以通过配置yum源然后直接yum安装,详情http://wiki.centos.org/AdditionalResources/Repositories/CentOSPlus)
也可以直接去http://ftp.heanet.ie/pub/centos/5/centosplus/i386/RPMS/下载)。