文档详情

第三讲-SPEC详解教学幻灯片

youn****329
实名认证
店铺
PPTX
1.53MB
约41页
文档ID:240301869
第三讲-SPEC详解教学幻灯片_第1页
1/41

麒麟操作系统麒麟操作系统SPECSPEC详解详解SPEC概述 制作RPM软件包的关键在于编写SPEC软件包描述文件要想制作一个rpm软件包就必须写一个软件包描述文件(SPEC)这个文件中包含了软件包的诸多信息,如软件包的名字、版本、类别、说明摘要、创建时要执行什么指令、安装时要执行什么操作、以及软件包所要包含的文件列表等主要内容 注释行 文件头 功能段文件头 文件头描述软件包的基本信息,它包含若干个域,其中有必选的域, 也有可选的域一个域占用一行其描述格式为: 域名 : 域值 分为以下两种域:必选域、可选域 文件头 必选域 文件头有六个必选域: Name Version Release Summary Group License 文件头 必选域 Summary: kylin rpmbuild test #此域定义软件包简介,为一句话说明 Name: rpmtest #此域定义软件名 Version: 1.0 #域定义版本号仅当软件较以前有较大改变时才增加版本号 Release:1 #此域定义发布序列号,若软件较以前改变较小,则仅增加发布序列号 License:GPL #此域定义软件适用的许可证或版权规则 Group:Applications/Archiving #此域定义软件所属类别Version和Release中不能含减号(-)字符更多说明可查看教材SPEC详解部分文件头 可选域 文件头可选域包括如下几类: 基本信息(Vendor、Distribution、Icon、Packager、Serial、URL) 依赖相关(Provides、Requires、Conflicts) 系统相关(Excludearch、Exclusivearch、Excludeos、Exclusiveos) 目录相关(Prefix、Buildroot) 源码相关(Source、NoSource、Patch、NoPatch)文件头 基本信息 1.Vendor:此域定义软件的供应商 例:Vendor:kylin 2.Distribution:此域定义软件所属的发行版,这是软件包制作者自己的分类。

通常,一个发行版由若干个软件包构成 例:Distribution : kylin 3.Icon:此域指定软件包所用的图标文件名 例:Icon : test.xpm 4.Packager:此域定义打包者,亦即建立此软件包的人或公司 例:Packager: kylin icon文件需放置在源码目录文件头 基本信息 5.Serial:此域定义软件序列号,也可使用域名Epoch 例:假设软件序列号为4,则Serial:4 6.URL :此域定义包含打包软件有关信息的网页地址 例:URL:文件头 依赖相关 1.Provides:此域定义软件包提供的功能,可重复多行 其描述格式为:Provides : 功能1 ,功能2 . 例:Provides : mail-reader 如此它才能被邮件客户端使用文件头 依赖相关 2.Requires:此域定义软件包所需的功能,可重复多行 其描述格式为: Requires : 功能1 比较符1 序列号1:版本号1-发布序列号1 ,功能2 比较符2 序列号2:版本号2-发布序列号2 . 例:Requires: test1, test2 = 3.0, test3 =3.0 注: 本例阐明生成的包冲突的功能有: 1)当系统中test1包版本等于序列号为1且版本号为2.0时; 2)当系统中test2包版本大于等于3.0时。

文件头 系统相关 1.Excludearch:此域定义软件包不适用的体系 此域描述格式为:Excludearch : 体系1 体系2 . 例:Excludearch : i386 2.Exclusivearch:此域定义软件包适用的体系 其描述格式与Excludearch类似:体系1 体系2 . 例:Exclusivearch : i386 sparc如当前体系为i386,执行rpmbuild 会报错文件头 系统相关 3.Excludeos:此域定义软件包不适用的操作系统 此域描述格式为:Excludeos : 操作系统1 操作系统2 . 例:Excludeos : irix aix linux 4.Exclusiveos:此域定义软件包适用的体系 其描述格式:Exclusiveos : 操作系统1 操作系统2 . 例:Exclusiveos : linux solaris如当前体系统为linux,rpmbuild 后报错OS is excluded: linux文件头 目录相关 1. Prefix:此域定义可重定位的目录前缀,可重复编写 此域描述格式为:Prefix : 目录前缀1 目录前缀2 . 例:Prefix : /usr /etc 2.Buildroot:此域定义的是软件包所包含的文件共有的根目录,此根目录仅供RPM建立软件包时使用。

其描述格式:Buildroot : 目录 例:Buildroot : /tmp文件头 源码相关 1. Source:此域定义RPM打包时要包含的程序源码文件 此域描述格式为:Source编号 : 源码文件 例: Source0 : test-1.0-1.tar.gz Source1 : testime-wb-6.0-2.tar.gz 2.NoSource:此域定义RPM打包时不要包含的程序源码文件 其描述格式:NoSource : 源码域编号 例:NoSource : 1 NoSource : 2文件头 源码相关 3. Patch:它的本义是补丁,用在这里指的是源程序的补丁 此域描述格式为:Patch编号 : 源码补丁文件 例: Patch0 : test-1.0-bugfix.patch Patch1 : test-1.0-config.patch 4.NoPatch:此域的功能类似NoSource,其定义的编号对应的补丁文件RPM不作打包处理 其描述格式:NoPatch : 补丁编号 例:NoPatch : 0 NoPatch : 1功能段 功能段是描述软件包的重要数据和操作指令的段落,它包括段名与段内容两部分。

没有功能段,RPM便制作不出任何包裹文件功能段的段名都是以百分号(%)开始的,占用一行功能段的段内容范围是这样界定的:它从该功能段段名下一行开始到下一个功能段段名的前一行或到描述文件结束各个功能段的位置是自由的,可放在文件头以下的任何位置 本文着重讲解以下两种类型,其他段内容可查看教材 必选功能段 必选功能段功能段 必选功能段 %description 本段是描述段,段的内容是对软件包进行较为详细的介绍,不像文件头的Summary域仅用一句话说明 此域描述格式有三种: 1.%description 子包选项 本功能段描述的内容是关于父包的它用软件名来命令,其名字格式是:软件名-版本号-发布序列号.体系.rpm 例:test-1.0-1.i386.rpm功能段 必选功能段 %description 2.%description 子包选项 本功能段描述的内容是关于子包的子包选项中没有-n选项时,子包是用软件名加子包名的形式命名 格式为: 软件名-子包名-版本号-发布序列号.体系.rpm 例:分成两个子包的test软件: test-bin-1.0-1.i386.rpm(执行程序包) test-config-1.0-1.i386.rpm(配置文件包)功能段 必选功能段 %description 3.%description -n 子包名 本功能段描述的内容也是关于子包的。

当子包选项中有-n选项时,子包直接采用子包名的形式命名 它不包含软件名,命名格式为: 子包名-版本号-发布序列号.体系.rpm 例::分成两个子包的test软件: bin-1.0-1.i386.rpm(执行程序包) config-1.0-1.i386.rpm(配置文件包) 功能段 必选功能段 %files 本段是文件段,它定义的是软件包需要包含哪些文件 本段段名描述格式格式为: %files 子包选项 -f 文件名 当没有任何选项时,本段内容定义的是父包要打包的文件列表; 当有子包选项时,本段内容定义的则是子包要打包的文件列表; 文件段的内容格式为: 修饰符1 修饰符2 . 文件名 其中:修饰符是可选的,一个文件可以有多个修饰符,文件名必须以/开头(绝对路径形式) 功能段 修饰符有以下几类: 文件相关 1.%doc : 此修饰符设定文件类型为说明文档; 2.%config : 此修饰符设定文件类型为配置文件; 3.%config(missingok) : 此修饰符设定文件类型为配置文件,且此文件可丢失即使丢失了,RPM在卸载软件包时并不认为这是个错误,并不报错 功能段 4.%config(noreplace) : 此修饰符设定文件类型为配置文件,且如果安装时系统中有同名的文件,则软件包中的这个文件将换个名字安装,其文件名后缀加个.rpmnew。

例: 如描述文件的文件段中定义了这么一行: %config(noreplace) /etc/test 则制成的包在安装时,若系统中已有此文件/etc/test,则RPM会提示: warning: /etc/test created as /etc/test.rpmnew 5.%ghost 此修饰符所修饰的文件,其内容不被包含到软件包中 6.%attr 此修饰符所修饰的文件,其内容不被包含到软件包中功能段 6.%attr 此修饰符所修饰的文件,其内容不被包含到软件包中 此修饰符设定文件的属性信息,使用格式为: %attr(权限,属主,属组) 问题:如何配置采用%attr和%config两个修饰符,定义/etc/test.def文件的权限为755,属主默认,属组为root?%attr(755,-,root) %config /etc/test.def功能段 7.%verify 此修饰符设定文件需要校验的那些属性这些属性有:owner(属主),group(属组),mode(权限),md5(MD5检查和),size(大小),maj(主设备号),min(从设备号),symlink(符号连接),mtime(最后修改时间)。

此修饰符使用格式为: %verify(not owner group mode md5 size maj min symlink mtime) 例:指示RPM校验/dev/ttyS0文件时,要校验其权限,MD5检查和,大小,主设备号,从设备号,符号连接和最后修改时间共七项属性信息: %verify(not owner group) /dev/ttyS0功能段 目录相关 1.%docdir 此修饰符定义说明文档前缀 此修饰符使用格式为:%docdir filename 例:某描述文件的文件段中有如下两行 指明/root为说明文档的前缀,因为/root/mydoc.txt在%docdir的下一行,所以RPM打包时会设定此文件的类型为说明文档docdir /root/root/mydoc.txt需写明路径功能段 目录相关 2.%dir 此修饰符定义目录名包含到软件包中 此修饰符使用格式为:%docdir dirname 例:如将/etc目录包含到软件包中:%dir /etc功能段 另类修饰符%defattr 它设定的是默认的文件属性,而非特定的某个文件它一般放在文件段内容的第一行 此修饰符使用格式为:%defattr(权限,属主,属组) 例1:%defattr(022,kylin,base) 设定其后的所有文件权限为022,属主为kylin,属组为base; 例2:%defattr(-,kylin,-) 设定其后的所有文件属主为kylin,权限与属组由系统设置;功能段 可选功能段 可选功能段的内容都是些脚本程序。

可选的功能段的描述格式为: 功能段名 子包选项 可。

下载提示
相似文档
正为您匹配相似的精品文档