一、安装 rpmbuild // for fedora linux yum install rpmbuild -y // for ubuntu apt-get install rpmbuild 二、rpm specification file
其实,制作RPM软件包并不是一件复杂的工作,其中的关键在于编写SPEC软件包描述文件。要想制作一个rpm软件包就必须写一个软件包描述文件 (SPEC)。这个文件中包含了软件包的诸多信息,如软件包的名字、版本、类别、说明摘要、创建时要执行什么指令、安装时要执行什么操作、以及软件包所要 包含的文件列表等等。 描述文件说明如下: (1) 文件头 一般的spec文件头包含以下几个域: Summary: Name: Version: Release: Vendor: Copyright: Group: Source: %description: (2)%prep 段 这个段是预处理段,通常用来执行一些解开源程序包的命令,为下一步的编译安装作准备。%prep和下面的%build,%install段一样,除 了可以执行RPM所定义的宏命令(以%开头)以外,还可以执行SHELL命令,命令可以有很多行,如我们常写的tar解包命令。 (3)build 段 本段是建立段,所要执行的命令为生成软件包服务,如make 命令。 (4)%install 段 本段是安装段,其中的命令在安装软件包时将执行,如make install命令。 (5)%files 段 本段是文件段,用于定义软件包所包含的文件,分为三类--说明文档(doc),配置文件(config)及执行程序,还可定义文件存取权限,拥有者 及组别。 (6)%changelog 段 本段是修改日志段。你可以将软件的每次修改记录到这里,保存到发布的软件包中,以便查询之用。每一个修改日志都有这样一种格式:{dy}行是:* 星期 月 日 年 修改人 电子信箱。其中:星期、月份均用英文形式的前3个字母,用中文会报错。接下来的行写的是修改了什么地方,可写多行。一般以减号开始,便于后续的查阅。 三、源代码打包 将源代码打包,如 stardict-2.0.tar.gz,并将文件放到spec文件Source段所描述的路径下,通常为/usr/src/redhat /SOURCES/目录下(不同的Linux发布版本略有不同,如OpenSUSE为 /usr/src/packages/SOURCES/) 四、rpm打包 rpmbuild -ba ‘spec文件路径’ (rpmbuild常用参数: -bb 只编译二进制rpm包 -bs 只编译源码rpm包 -ba 同时编译二进制和源码rpm包) build完后,可以在/usr/src/redhat/RPMS/下找到二进制rpm包,rpm包按照其对应的cpu体系结构分类,通常在 /usr/src/redhat/RPMS/i386目录下 /usr/src/redhat/SRPMS/下找到源码rpm包,此时由于是源代码,所以无须按体系结构分类。
参考文献: http://www.uplinux.com/www/dev/02/317.shtml
source : http://www.cnblogs.com/dlbrant/archive/2009/02/17/1392461.html |