定制Linux发行版(2):定制自己的软件包格式
redhat系统的软件包名字一般为.el6.rpm,假设我们要打造一款名为K-UX的操作系统,那我们可以使用mock,编译出.kux.rpm形式的软件包。在阅读本文之前,你可能需要知道rpmbuild和mock的原理及相关使用方法,这些本博客以前都介绍过。本文的实验环境为CentOS 6.4 x86_64。
为什么要使用mock?
mock是Linux平台下编译.src.rpm的工具,它是在rpmbuild上封装了一层,与rpmbuild相比,它的好处是可以自动解决安装过程中产生的各种依赖关系。而rpmbuild不能自动解决这些依赖关系。既然依赖关系解决了,那就可以写个简单的脚本,实现批量编译.src.rpm的任务了。
按理说,如果要大量编译.src.rpm包,应该使用Fedora提供的Koji工具,但因为Koji太过庞大,配置起来极其复杂,因此还是使用更为小巧智能的mock比较方便。
一,使用rpmbuild编译.kux.rpm格式的软件包
首先需要知道一点儿系统基础:
%dist一般表示操作系统平台,如el5、el6,我们要修改的.kux也需要修改此值
%arch一般表示硬件平台,i386、i686、ia64、x86_64等
要build出.kux.rpm格式的软件包,首先需要修改/etc/rpm/macros.dist文件
[root@os2 ~]# rpm -qf /etc/rpm/macros.dist
centos-release-6-4.el6.centos.10.x86_64 #由该软件包释放
[root@os2 ~]# cat /etc/rpm/macros.dist
# dist macros.
%rhel 6
%centos 6
%centos_ver 6
%dist .kux #将这里的el6修改为kux
%el6 1
然后,再通过rpmbuild命令就可以编译出.kux.rpm格式的软件包了 (more…)
Read More