RPM制作 2.1 基本步骤 1) 取回软件的源代码和相关的补丁 2) 测试所需的补丁,以便于顺利的构建整个程序 3) 编辑spec文件 4) 把文件放到正确的位置 5) 使用RPM构建rpm包 2.2 目录结构 /usr/src/redhat/BUILD 编译时的临时目录 /usr/src/redhat/RPMS 存放RPM包 /usr /src/redhat/SOURCES 存放源代码和补丁 /usr/src/redhat/SPECS 存放控制文件--spec文件 /usr/src/redhat/SRPMS 存放源代码包 2.3编辑spec文件 要想制作一个RPM格式的软件包,需要编写软件包描述文件。其标准命名格 式为:软件名-版本号-释出号.spec,这个文件,详细描述了有关该软件包的诸多信息,如软件名,版本,类别,说明摘要,创建时要执行什么指令,安装时 要执行什么操作,以及软件包所要包含的文件等等。有了这个文件,RPM就可以制作出相应的包裹文件来。 2.4打包过程 下面总结一下运行 rpm -ba filename.spec 时,RPM 都做些什么: 1)读取并解析 filename.spec 文件 2)运行 %prep 部分来将源代码解包到一个临时目录,并应用所有的补丁程序。 3)运行 %build 部分来编译代码。 4)运行 %install 部分将代码安装到构建机器的目录中。 读取 %files 部分的文件列表,收集文件并创建二进制和源 RPM 文件。 源 RPM 文件简单地捆绑了 spec 文件和构建软件包用到的所有源文件和补丁文件。如果您选择分发它,则其他人可以很容易地用它重建您的软件。二进制 RPM 文件仅包含已编译的软件和如何安装的信息。 5)运行 %clean 部分来除去临时构建目录。 Spec文件的编辑 注 释行 它以#号开头,起注解作用,可帮助用户理解所写的内容,但对软件包的生成不起任何作用。注释行可位于描述文件的任何位置。 文件头 文 件头描述软件包的基本信息,它包含若干个域,其中有必选的域,也有可选的域。一个域占用一行,其描述格式为: 域名 : 域值 注意: 域名不分大小写,并且域值不能为空。 文件头必选域: 共有6个。 1. Name : 此域定义软件名。 2. Version : 此域定义版本号。仅当软件较以前有较大改变时才增加版本号。注: 版本号中不能含减号(-)字符。 3. Release : 此域定义释出号。若软件较以前改变较小,则仅增加释出号,不改变版本号。注: 释出号中亦不能含减号(-)字符。 RPM 利用上述的Name(软件名),Version(版本号),Release(释出号)及体系号来命名软件包,如本例输出的包裹文件名为sip- 2.4.3-1.i386.rpm。 4. Summary : 此域定义软件包简介。 5. Group : 此域定义软件 所属类别,本例的Developmet/Tools表示本软件属"开发/工具"类。 6. License : 此域定义软件适用的许可证或 版权规则。该域也可用Copyright(版权)来定义,二者同意。许可证具体有: GPL(通用公共许可证,自由软件适用),BSD,MIT,Public Domain(公共域),Distributable(贡献),Commercial(商业),Share(共享)等。 |
|
来自: dlshanghai > 《Linux》