0:说明
安装redhat-rpm-config,用如下命令:
PS:如果工作人员认为有必要的话可以安装rpmdev-newspec。这个小工具是用来生成.spec文件模板的。因为不是必选工具所以关于它的安装和使用方法在这里就不再赘述。
用下面的命令创建必要的文件夹,其中BUILD是用来保存打包过程中生成的临时文件用的;RPMS用来保存生成的二进制RPM包;SOURCES用来保存打包用的源文件(包括压缩文件);Specs用来保存.spec脚本;SRPMS用来保存生成的源代码rpm包。
用下面的命令生成rpmbuild所需要的宏文件,这个文件里包含的是.spec中要引用的相对路径。文件里的内容可以手动配置和编写,格式符合要求即可。
2.制作.spec文件
这里用我们制作asterisk的二进制rpm包为例来说明制作.spec文件的方法。所有的.spec文件都可以参照和类比这种方式来制作。
2.1.spec文件的格式
用如下命令生成asterisk.spec
2.2asterisk内容说明
Name:
软件包的名字,最终RPM软件包是用该名字与版本号,释出号及体系号来命名软件包的。
Version:
软件版本号。仅当软件包比以前有较大改变时才增加版本号。
Release:
软件包释出号。一般我们对该软件包做了一些小的补丁的时候就应该把释出号加1。
copyright:
软件包所采用的版权规则。具体有:GPL(自由软件),BSD,MIT,Public Domain(公共域),distributable(贡献),commercial(商业),Share(共享)等,一般的开发都写GPL。
Group:
软件包所属类别,具体类别有:
Amusements/Games (娱乐/游戏)
Amusements/Graphics(娱乐/图形)
Applications/Archiving (应用/文档)
Applications/Communications(应用/通讯)
Applications/Databases (应用/数据库)
Applications/Editors (应用/编辑器)
Applications/Emulators (应用/仿真器)
Applications/Engineering (应用/工程)
Applications/File (应用/文件)
Applications/Internet (应用/因特网)
Applications/Multimedia(应用/多媒体)
Applications/Productivity (应用/产品)
Applications/Publishing(应用/印刷)
Applications/System(应用/系统)
Applications/Text (应用/文本)
Development/Debuggers (开发/调试器)
Development/Languages (开发/语言)
Development/Libraries (开发/函数库)
Development/System (开发/系统)
Development/Tools (开发/工具)
Documentation (文档)
System Environment/Base(系统环境/基础)
System Environment/Daemons (系统环境/守护)
System Environment/Kernel (系统环境/内核)
System Environment/Libraries (系统环境/函数库)
System Environment/Shells (系统环境/接口)
User Interface/Desktops(用户界面/桌面)
User Interface/X (用户界面/X窗口)
User Interface/X Hardware Support (用户界面/X硬件支持)
Source:
源程序软件包的名字。如果有多个文件或部分可以写作:Source0……;source1……;Source3……;……
%description:
软件包详细说明,可写在多个行上。
%prep
这个段是预处理段,通常用来执行一些解开源程序包的命令,为下一步的编译安装作准备。%prep和下面的%build,%install段一样,可以执行shell命令。如我们在就加入了tar命令、cd命令等。
% build段
本段是编译段,所要执行的命令为生成软件包服务,如./configure、make 命令。
%install段
本段是安装段,其中的命令在安装软件包时将执行,如make install等命令。根据不同的软件,命令会有所不同。
%files段
本段是文件段,用于定义生成的rpm包所包含的文件。所以要打到rpm包里的文件都要在这里列出来。如果缺少这个段,则无法生成二进制的rpm文件。
%clean段
本段是生来清理由前面的步骤生成的垃圾文件的。同样,这个段由shell命令组成。
3.打包
如果只打包二进制rpm包可以用下面的命令:
如果只打包源代码rpm包可以用如下命令:
如果二进制rpm包和源代码rpm包都需要,则用如下命令:
4.参考资料:
http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment
http://tecadmin.net/create-rpm-of-your-own-script-in-centosredhat/
https://fedoraproject.org/wiki/How_to_create_a_GNU_Hello_RPM_package
http://www.ibm.com/developerworks/cn/linux/l-rpm/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。