deb软件包结构分析_第1页
deb软件包结构分析_第2页
deb软件包结构分析_第3页
deb软件包结构分析_第4页
deb软件包结构分析_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——deb软件包结构分析释放软件包

方法1、

ar

-t查看deb包存档格式文件-x释放存档文件

Debian包的ar存档格式由三个文件组成:

Debian-binary:存档格式的版本

Control文件:deb包的DEBIAN目录控制信息,这些脚本在软件包处理的不同的阶段被dpkg调用

Data文件:deb包的数据信息,存档文件,执行文件等后面两个文件的压缩格式各种各样。这边不探讨。

方法2、

Dpkg

-x解压程序文件

-X解压程序文件(输出的标准输出)-e解压控制文件

软件包元信息

Debian软件包不仅仅只是一些待安装的文件的存档,它是一个更大的结构的一部分,它描述与其它Debian软件包的关系(依靠、冲突、建议)。它还提供脚本供软件包的生命周期的不同阶段(安装、删除、升级)使用。这些供包管理工具使用的数据不是被打包的软件的一部分,但它们存在于软件包里,被称作“元信息〞(关于其它信息的信息)。1、control文件

Apt-cache工具show出的gcc的信息,这个推测是control文件中的内容

下面这个是cat出的sogoupinyin_042_i386.deb软件包的control信息。

语法:field:value

假使是多行value,需要空一个空格

字段分析:

1)、源码包中有control文件

?Source(mandatory)?Maintainer(mandatory)?Uploaders

?Section(recommended)?Priority(recommended)?Build-Dependsetal

?Standards-Version(recommended)?Homepage

?Vcs-Browser,Vcs-Git,etal.

2)、二进制包中有control文件?Package(mandatory)?Source

?Version(mandatory)?Section(recommended)?Priority(recommended)?Architecture(mandatory)

?Essential?Depends?Installed-Size

?Maintainer(mandatory)?Description(mandatory)?Homepage?Built-Using3)、

i.Source(强制的)源码包的名字ii.Package(强制的)二进制包的名字

Packagenames(bothsourceandbinary,see‘Package’onthenextpage)mustconsistonlyoflowercaseletters(a-z),digits(0-9),plus(+)andminus(-)signs,andperiods(.).Theymustbeatleasttwocharacterslongandmuststartwithanalphanumericcharacter.

iii.Maintainer(mandatory)维护者

维护者的名字在前面,后面用“”写上电子邮箱地址。iv.Uploaders维护者

可选的字段,如果Maintainer只写了一个团队或者是一个团队的公共邮箱,那么这一字段可以写维护者(人)的名字和邮箱,语法和Maintainer字段一样。v.Changed-By维护者

对这个版本的软件包修改过的维护者。格式同Maintainer字段。vi.Section节/部分

这个字段指出软件包被维护者所分属的应用领域。目前,这个字段可以有下面这些关键字:

Atpresent,theyare:admin,cli-mono,comm,database,debug,devel,doc,editors,education,electronics,embedded,fonts,games,gnome,gnu-r,gnustep,graphics,hamradio,haskell,httpd,interpreters,introspection,java,kde,kernel,libdevel,libs,lisp,localization,mail,math,metapackages,misc,net,news,ocaml,oldlibs,otherosfs,perl,php,python,ruby,science,shells,sound,tasks,tex,text,utils,vcs,video,web,x11,xfce,zope.vii.Priorities优先级

这个字段标识软件包的优先级别,是维护者指定的优先级,在Debian系统中表示软件包的一种等级划分。在debian/control文件中,这个字段的的值应该和.change文件中的值一致。

在目前的体系中,优先级分为五个等级:

Required:这个优先级的软件包对于系统来说是必须的(dpkg功能是依赖这些软件包的)。移除required等级的软件包可能造成系统的破坏、无法运行,而且你还不能用dpkg返回刚刚的操作,所以除非你知道自己在做什么。

Important:这个优先级的软件包是一些系统日常必备的东西,如果系统不具备这些软件,系统运行会非常不爽,让人无法接受,但这个优先级的软件不能太大,如VIM等。所以说是小的、必要的一些工具。

Standard:这个优先级是一些缺省安装的软件包,这些软件包足够小,不一定只是工作在命令行下的,它不能包含一些大的软件。

Optional:(在定义中,非required即为optional,但在这里不是),这个优先

级的很多软件你想安装但是你也不是特别的强烈需要这些软件。这个级别软件很多,想X-window系统、TeX等应用。Optional包不允许互相之间有冲突。

Extra:不是required、important、standard、optional优先级的包都是这个优先级,这些包可能互相冲突(包括其他优先级),要安装的话除非你知道这些包是干什么用的。

viii.Architecture架构

取决于(依赖)上下文和control文件,该字段包含下面的四种格式:1、一个独特的单词(os-arch)指出适用的机器架构,os常常省略2、用通配符标识机器架构,“any”表示匹配所有的架构且常用3、“all”标识独立于机器架构的包4、“source”标识一个源代码包

在终端使用“dpkg-architecture-L”命令查看os-arch有哪些值,看到有349个值

注:

在源码包的debian/control文件中,该字段可以包含“all”、“any”、或是os-arch,他们之间空格间隔。如果是出现“all”或者“any”,该值必须是全部部分,即只能有all或者any独立存在。大部分的包是“all”或“any”。

指定的一个特定的os-arch架构list,则源码包将会建立一个依赖list表中架构的包。

在Debian源码控制文件.dsc文件中,该字段包含一个architecturelist和架构的通配符,中间用空格隔开。当字段中包含通配符any时,只能同时存在all。

源码包中只有“any”通配符,表示源码包不依赖于任何特定的架构,能编译适应任意架构的。能生成特定于当前体系的二进制包。

源码包中只有“all”通配符,表示源码包仅仅生成独立于体系结构的包。源码包有“any”和“all”通配符,表示不依赖于任何特定的架构,生成的二进制包集合中包含至少一个依赖一种体系的包和一个独立于体系架构的包。

在.changes文件中Architecture字段列出的是目前升级后的包对应的Architecture。如果源码包也升级了,特殊值“source”还是应该存在的。任意的独立于架构的包升级后“all”值也存在。架构通配符像“any”这些东西绝对不能出现在.changes文件的Architecture字段中。

ix.Essential重要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论