《SPEC详解》PPT课件

上传人:lisu****2020 文档编号:244996118 上传时间:2024-10-07 格式:PPTX 页数:41 大小:1.41MB
返回 下载 相关 举报
《SPEC详解》PPT课件_第1页
第1页 / 共41页
《SPEC详解》PPT课件_第2页
第2页 / 共41页
《SPEC详解》PPT课件_第3页
第3页 / 共41页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,麒麟操作系统,SPEC详解,SPEC,概述,制作RPM软件包的关键在于编写SPEC软件包描述文件。要想制作一个rpm软件包就必须写一个软件包描述文件(SPEC)。这个文件中包含了软件包的诸多信息,如软件包的名字、版本、类别、说明摘要、创建时要执行什么指令、安装时要执行什么操作、以及软件包所要包含的文件列表等,。,主要内容,注释行,文件头,功能段,注释行,它以#号开头,起注解作用,可帮助用户理解所写的内容,但对软件包,的生成不起任何作用。,如何编写注释行呢?,实例:#This is a example,文件头,文件头描述软件包的基本信息,它包含若干个域,其中有必选的域,也有可选的域。一个域占用一行。其描述格式为:,域名:域值,分为以下两种域:,必选域、可选域,文件头,必选域,文件头有六个必选域:,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:此域定义包含打包软件有关信息的网页地址。,文件头,依赖相关,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编号:源码文件,例:,2.NoSource:此域定义RPM打包时不要包含的程序源码文件。,其描述格式:NoSource:源码域编号,例:NoSource:1,NoSource:2,文件头,源码相关,3.Patch:它的本义是补丁,用在这里指的是源程序的补丁。,此域描述格式为:Patch编号:源码补丁文件,例:,4.NoPatch:此域的功能类似NoSource,其定义的编号对应的补丁文件RPM不作打包处理。,其描述格式:NoPatch:补丁编号,例:NoPatch:0,NoPatch:1,功能段,功能段是描述软件包的重要数据和操作指令的段落,它包括段名与段内容两部分。没有功能段,RPM便制作不出任何包裹文件。功能段的段名都是以百分号(%)开始的,占用一行。功能段的段内容范围是这样界定的:它从该功能段段名下一行开始到下一个功能段段名的前一行或到描述文件结束。各个功能段的位置是自由的,可放在文件头以下的任何位置。,本文着重讲解以下两种类型,其他段内容可查看教材。,必选功能段,必选功能段,功能段,必选功能段,%description,本段是描述段,段的内容是对软件包进行较为详细的介绍,不像文件头的Summary域仅用一句话说明。,此域描述格式有三种:,1.%description 子包选项,本功能段描述的内容是关于父包的。它用软件名来命令,其名字格式是:软件名-版本号-发布序列号.体系.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,权限与属组由系统设置;,功能段,可选功能段,可选功能段的内容都是些脚本程序。,可选的功能段的描述格式为:,功能段名 子包选项,可选的功能段可分为如下类:,建包用功能段,管理用功能段,交互用功能段,其他功能段,子软件包,功能段,建包功能段,RPM通过源程序来建立一个软件包时,要执行预处理,编译,安装和清理四项操作,分别对应于%pre
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!