制作支持MySql的Postfix包

RHEL里的postfix默认不支持mysql。
需要重新编译postfix,但是postfix和别的软件联动,所以考虑源码安装后会有一些问题,因此我决定用RHEL提供的postfix的src.rpm包重新制作支持mysql的rpm包。


1.首先下载并安装postfix的src.rpm包

[c-sharp]  view plain copy
  1. [root@mail ~]# cd /usr/local/src  
  2. [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  
  3. [root@mail src] mkdir -p /usr/src/redhat/SOURCES  
  4. [root@mail src] rpm -ihv postfix-2.3.3-2.src.rpm  

 

2.下载和src.rpm主版本一致的VDA patch包并解压

[c-sharp]  view plain copy
  1. [root@mail src] cd /usr/src/redhat/SOURCES  
  2. [root@mail SOURCES] wget http://vda.sourceforge.net/VDA/postfix-2.3.3-vda.patch.gz  
  3. [root@mail SOURCES] gunzip postfix-2.3.3-vda.patch.gz  

 

3.修改postfix.spec文件添加MySql支持

[c-sharp]  view plain copy
  1. [root@mail SOURCES] cd /usr/src/redhat/SPECS  
  2. [root@mail SPECS] cp postfix.spec  postfix.spec.org  
  3. [root@mail SPECS] vi postfix.spec  
  4. %define MYSQL 0  
  5. 改成  
  6. %define MYSQL 1  
  7. 在# Patches这个段的后面追加  
  8. Patch11: postfix-2.3.3-vda.patch  
  9. 在# Apply obligatory patches这个段后面追加  
  10. %patch11 -p1 -b .vda  

 

4.用rpmbuild生成rpm包,这个地方可能会依赖一些开发包,直接yum安装即可。

[c-sharp]  view plain copy
  1. [root@mail SPECS] rpmbuild -ba postfix.spec  
  2. 发现缺少db4-devel openldap-devel cyrus-sasl-devel pcre-devel包  
  3. [root@mail SPECS] yum -y install db4-devel openldap-devel cyrus-sasl-devel pcre-devel  
  4. [root@mail SPECS] rpmbuild -ba postfix.spec  
  5. 这个地方会稍微时间长一点,成功后的rpm包在/usr/src/redhat/RPMS/i386/下  
  6. [root@mail SPECS] ls /usr/src/redhat/RPMS/i386/  
  7. postfix-2.3.3-2.1.i386.rpm  postfix-pflogsumm-2.3.3-2.1.i386.rpm  

 

5.已经生成成功了,接下来安装该rpm包,然后看看是否支持MySql
注意:在这一步如果你的系统里已经有postfix的话,而且因为依赖不能先卸载的话,安装的时候加上--force参数,强制替换。

[c-sharp]  view plain copy
  1. [root@mail SPECS] rpm -Uhv /usr/src/redhat/RPMS/i386/postfix-2.3.3-2.1.i386.rpm  
  2. [root@mail SPECS] postconf -m  
  3. btree  
  4. cidr  
  5. environ  
  6. hash  
  7. ldap  
  8. mysql  
  9. nis  
  10. pcre  
  11. proxy  
  12. regexp  
  13. static  
  14. unix  

看到了吧,已经支持MySql了,O(∩_∩)O哈哈~!

 

6.因为我们是自己生成的rpm包安装的,所以你不能用yum来更新postfix了,否则新版本替换我们的版本后,又不支持MySql了,因此我们从yum里设置不让更新postfix。

[c-sharp]  view plain copy
  1. [root@mail SPECS] cp /etc/yum.conf /etc/yum.conf.org  
  2. [root@mail SPECS] vi /etc/yum.conf  
  3. 追加一句  
  4. 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/下载)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值