当前位置:  技术问答>linux和unix

100分求助rpm打包问题

    来源: 互联网  发布时间:2015-05-29

    本文导语:  本人初学linux程序开发,对软件打包问题比较生疏,请那位朋友帮忙介绍一下大概流程,即需要的相关知识,谢谢。 | 1.mkdir -p /usr/src/dist/{BUILD,RPMS/i386}  上述命令用于创建两个目录/usr/src/dist...

本人初学linux程序开发,对软件打包问题比较生疏,请那位朋友帮忙介绍一下大概流程,即需要的相关知识,谢谢。

|
1.mkdir -p /usr/src/dist/{BUILD,RPMS/i386} 

上述命令用于创建两个目录/usr/src/dist/BUILD与/usr/src/dist/RPMS/i386,前一个目录是RPM建立软件包时用的目录,后一个是RPM输出软件包的目录,我的LZE软件包lze-6.0-1.i386.rpm就是在此目录下存放的。这两个目录不创建,运行rpm命令建包时将报错退出。 

注意:输出目录名i386,意味着这是台X86的机器。如果你的机器与此体系不同,则目录名也要相应更换。 

2.编写软件包描述文件lze-6.0-1.spec 

要想制作一个软件包,就必须写一个软件包描述文件(SPEC)。这个文件中包含了软件包的诸多信息,如软件包的名字,版本,类别,说明摘要,创建时要执行什么指令,安装时要执行什么操作,以及软件包所要包含的文件列表等等。 

LZE软件包描述文件lze-6.0-1.spec比较简单,仅用于创建二进制程序包。其描述文件内容如下:(每行开头的数字为所在行在文件中的行号) 

1 Summary:小赵全屏幕中英文多窗口多功能编辑器(Linux/UNIX系统适用) 
2 Name:lze 
3 Version:6.0 
4 Release:1 
5 Vendor:纵横软件制作中心(Email:zhsoft@etang.com) 
6 Copyright:Share 
7 Group:Applications/Editors 
8 Source:http://zhsoft.myetang.com/lze-6.0.tar.gz 
9 %description 
10 小赵编辑器,是为使用SCO UNIX,Linux多用户系统的广大用户专门设计的全屏幕多窗 
11 口中英文多功能编辑器。 
12 它主要有以下十大特点:1.全屏幕菜单操作。2.显示方式多样。3.块操作丰富。4.十 
13 字制表功能强大。5.多窗口操作灵活自如。6.文件操作功能齐全。7.解释输出功能独具特 
14 色。8.自带中文输入法(增强五笔和增强拼音),实用方便。9.十六进制编辑功能,如虎 
15 添翼。10.即时翻译,按到即译。 
16 总之,小赵编辑器会成为您在UNIX,Linux系统上编制程序和书写一般性文稿的好帮手。 
17 它将在工作中助您一臂之力,轻松上阵,游刃有余! 
18 
19 %prep 
20 # prep start. 
21 
22 %build 
23 # build start. 
24 cp /root/{读我,版权声明} . 
25 
26 %install 
27 # install start. 
28 
29 %files 
30 %defattr (-,root,root) 
31 %doc 读我 
32 %doc 版权声明 
33 %config /etc/funkey.def 
34 %config /etc/inputme.def 
35 
36 /usr/bin/lze 
37 /usr/bin/lzeime.py 
38 /usr/bin/lzeime.wb 
39 
40 %changelog 
41 
42 * Fri May 1 1998 Leon
43 - 增加多窗口操作 
44 
45 * Mon Mar 24 1997 Leon
46 - 增加块操作命令 
47 

描述文件说明如下: 

(1)文件头 

它包含以下几个域: 

* Summary: 
软件包一句话说明,一行有效。 
* Name: 
软件包的名字,RPM用该名字与版本号,释出号及体系号来命名软件包。如,本例输出的软件包名为lze-6.0-1.i386.rpm。 
* Version: 
软件版本号。仅当软件较以前有较大改变时才增加版本号。 
* Release: 
软件释出号。若软件较以前改变较小,则仅增加释出号,不改变版本号。 
* Vendor: 
软件开发者的名字。 
* Copyright: 
软件包所采用的版权规则。具体有: GPL(自由软件),BSD,MIT,Public Domain(公共域),Distributable(贡献),commercial(商业),Share(共享)等。 
* 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: 
源程序软件包的名字。 
* %description: 
软件包具体说明,可写在多个行上。示例中第10-18行均为说明。 

(2)%prep段 

这个段是预处理段,通常用来执行一些解开源程序包的命令,为下一步的编译安装作准备。%prep和下面%build,%install段一样,除了可以执行RPM所定义的宏命令(以%开头)以外,还可以执行SHELL命令,命令可以有很多行。示例中,本段只有第20行一行注释语句(以#开头),不执行任何操作。 

(3)build段 

本段是建立段,所执行的命令为生成软件包服务。 

本段第23行是注释行,第24行执行的是拷贝命令,将/root目录下的两个文件(读我,版权声明)拷贝到软件包建立目录(/usr/src/dist/BUILD)。 

(4)%install段 

本段是安装段,其中的命令在安装软件包时将执行。示例中,本段只有第27行一行注释语句(以#开头),不执行任何操作。 

(5)%files段 

本段是文件段,用于定义软件包所包含的文件,分为三类--说明文档(doc),配置文件(config)及执行程序,还可定义文件存取权限,拥有者及组别。本段中: 

第30行-%defattr宏:定义文件存取权限为默认值(用-表示默认值,也可选择八进制数值,如0777等),定义拥有者为root,定义组别为root。 

第31,32行-%doc宏:用该宏定义软件包所含的说明文档,若没有指定目录,则目录为/usr/src/dist/BUILD。每个宏只能定义一个说明文档。说明文档一般安装在“/usr/doc/软件包名-版本号-释出号”目录下。 

第33,34行-%config宏:定义软件包应用的配置文件,象sendmail.cf,passwd等。当卸载含有配置文件的软件包时,任何未作改动的配置文件将被删除,改动过的配置文件将自动改名,后缀加上.rpmsave,以便再度安装这个软件包时可以迅速恢复使用。 

第36-38行-为软件包所包含的文件名列表,可以写许多行。如果文件名指示的是一个目录,则该目录下的所有文件将被包含在软件包中,注意不要弄错了。 

(6)%changelog段 

本段是修改日志段。你可以将软件的每次修改记录到这里,保存到发布的软件包中,以便查询之用。 

每一个修改日志都有这样一种格式:第一行是:* 星期 月 日 年 修改人 电子信箱。 

其中:星期、月份均用英文形式,用中文会出错。 

接下来的行写的应是修改了什么地方,可写多行。一般以减号起始,便于查阅。 

    
 
 

您可能感兴趣的文章:

  • 程序打包,求助!
  • 求助:请问该如何打包?
  • 邮件无法打包下载,求助!
  • 高分求助,急:解决了立马结贴! JavaMail程序的打包发布问题
  • java GUI 达人乱入!!!我用Jb7将application打包成exe文件,运行没有问题,但是中文全变成口口口口, 求助!!!
  • linux RPM打包时出错,求助!!!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • module的问题.版本问题 求助
  • 求助关于linux和windows引导lilo的问题
  • 求助~~求助 ~~linux文件读写问题
  • 求助! 又出现问题了!
  • 一个简单的问题,高分求助!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • socket实现多文件并发传输,求助多线程实现问题?
  • 各位大侠,求助一个关于ubuntu系统的问题
  • 100分求助,Ubuntu安装问题
  • linux的 iptables问题求助
  • 100分求助:关于linux下配置sendmail的问题
  • 急求助!安装linux后重装windows的问题
  • QT中关于方向键控制焦点的问题(求助)
  • 求助关于__cdecl的使用问题
  • 求助: 在ubuntu11.04上的有线连接问题
  • 急!!!小弟刚刚接触linux 在线求助<很简单的问题>
  • 求助: RedHat as4 内网正常,无法访问外网的问题!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • 高分求助
  • 紧急求助java多线程编程!!!!!!!!!!!!!
  • 高分求助foxpro的jdbc驱动程序!!!!
  • ~(取反)操作错误,求助!谢谢
  • 求助:在Java中如何获得当前系统的CPU型号?
  • RPM紧急求助
  • 求助:如何在UNIX下访问已经在WINDOWS下安装好的ORACLE?
  • 求助!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3