SRPM包编译成RPM包之rpmbuild和mock

	

1、绪

    最近在学习做Centos7发行版本的编译,最开始对srpm编包的命令感到有一个困惑:编译srpm包为什么不用rpmbuild命令,《鸟哥的linux私房菜》就是用的这个命令,公司里他们为什么采用mock命令?
	步入正题吧,在本机进行srpm编包的时候,有两种方式:

            (1)  rpmbuild命令

(2)  mock命令

关于rpmbuild命令,请详细参考《鸟哥的linux私房菜》关于srpm和rpm的那一章,连接如下:

                           http://vbird.dic.ksu.edu.tw/linux_basic/0520rpm_and_srpm.php#srpmmanager

关于mock,请详细参考以下链接:http://ju.outofmemory.cn/entry/55269

 

2、Mock和rpmbuild的区别与联系:

rpmbuild编包一般是自己使用,一些依赖你自己机器特性或者你想修改包的一些内容,这样编出来的包依赖本地环境,毕竟你经常使用的机器被你做了很多修改。

mock编包一般是做发行版本给别人使用,当然你做的软件要能在别人机器上跑,那么在开发过程中,我们必须模拟一个纯净的用户环境(即是所谓的chroot),mock在编包前先构建一个这样的用户环境,然后里面再使用rpmbuild的机制编包。

总结来说,rpmbuild编出来的包是特例,而mock编出来包在具有共性。mock相当于给rpmbuild增加了一个外壳,包装了一下。


关于chroot的一些理解,可以详细参考以下链接:

http://www.ibm.com/developerworks/cn/linux/l-cn-chroot/


 

展开阅读全文

没有更多推荐了,返回首页