马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!0:申明
本文以centOS6.5下打包asterisk的装置包为例来讲明成绩。请读者诸君触类旁通。感谢!
1.情况的筹办:
装置情况时以后用户要有体系办理权限。可是在制造RPM包时请必定要用无体系办理权限的用户来举行操纵。在入手下手统统的筹办事情之前,请先包管您的事情情况下已装置了gcc和make。关于这两个工具的装置***,这里不再赘述。
1.1装置组件
装置rpm-build,用以下下令:
装置redhat-rpm-config,用以下下令:
- sudoyuminstallredhat-rpm-config
复制代码
PS:假如事情职员以为有需要的话能够装置rpmdev-newspec。这个小工具是用来天生.spec文件模板的。由于不是必选工具以是关于它的装置和利用***在这里就不再赘述。
1.2在用户的主目次下创立必需的文件夹和文件
用上面的下令创立需要的文件夹,个中BUILD是用来保留打包过程当中天生的一时文件用的;RPMS用来保留天生的二进制RPM包;SOURCES用来保留打包用的源文件(包含紧缩文件);SPECS用来保留.spec剧本;SRPMS用来保留天生的源代码rpm包。
- mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
复制代码
用上面的下令天生rpmbuild所必要的宏文件,这个文件里包括的是.spec中要援用的绝对路径。文件里的内容能够手动设置和编写,格局切合请求便可。
- echo%_topdir%(echo$HOME)/rpmbuild>~/.rpmmacros
复制代码
2.制造.spec文件
这里用我们制造asterisk的二进制rpm包为例来讲明制造.spec文件的***。一切的.spec文件都能够参照和类比这类体例来制造。
2.1.spec文件的格局
用以下下令天生asterisk.spec
我将以下的内容输出到了文件中。
- Group:Applications/Internet
复制代码- mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}0
复制代码- mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}1
复制代码- mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}2
复制代码 mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}3[/code]- mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}4
复制代码- mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}5
复制代码 mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}3[/code]- mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}7
复制代码- mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}8
复制代码- mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}9
复制代码 mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}3[/code]- echo%_topdir%(echo$HOME)/rpmbuild>~/.rpmmacros1
复制代码- echo%_topdir%(echo$HOME)/rpmbuild>~/.rpmmacros2
复制代码- echo%_topdir%(echo$HOME)/rpmbuild>~/.rpmmacros3
复制代码- echo%_topdir%(echo$HOME)/rpmbuild>~/.rpmmacros4
复制代码 mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}3[/code]- echo%_topdir%(echo$HOME)/rpmbuild>~/.rpmmacros6
复制代码- echo%_topdir%(echo$HOME)/rpmbuild>~/.rpmmacros2
复制代码- echo%_topdir%(echo$HOME)/rpmbuild>~/.rpmmacros8
复制代码- echo%_topdir%(echo$HOME)/rpmbuild>~/.rpmmacros9
复制代码 mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}3[/code]mkdir-p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}3[/code]
2.2asterisk内容申明
Name:
软件包的名字,终极RPM软件包是用该名字与版本号,释出号及系统号来定名软件包的。
Version:
软件版本号。仅当软件包比之前有较年夜改动时才增添版本号。
Release:
软件包释出号。一样平常我们对该软件包做了一些小的补钉的时分就应当把释出号加1。
Copyright:
软件包所接纳的版权划定规矩。详细有:GPL(自在软件),BSD,MIT,PublicDomain(大众域),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(文档)
SystemEnvironment/Base(体系情况/基本)
SystemEnvironment/Daemons(体系情况/保卫)
SystemEnvironment/Kernel(体系情况/内核)
SystemEnvironment/Libraries(体系情况/函数库)
SystemEnvironment/Shells(体系情况/接口)
UserInte***ce/Desktops(用户界面/桌面)
UserInte***ce/X(用户界面/X窗口)
UserInte***ce/XHardwareSupport(用户界面/X硬件撑持)
Source:
源步伐软件包的名字。假如有多个文件或局部能够写作:Source0……;source1……;Source3……;……
%description:
软件包具体申明,可写在多个行上。
%prep
这个段是预处置段,一般用来实行一些解开源步伐包的下令,为下一步的编译装置作筹办。%prep和上面的%build,%install段一样,能够实行shell下令。如我们在就到场了tar下令、cd下令等。
%build段
本段是编译段,所要实行的下令为天生软件包办事,如./configure、make下令。
%install段
本段是装置段,个中的下令在装置软件包时将实行,如makeinstall等下令。依据分歧的软件,下令会有所分歧。
%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.ckuyun.com/developerworks/cn/linux/l-rpm/
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们! |