deb是什么格式-编程知识网

本教程操作环境:Ubuntu 22系统、Dell G3电脑。

DEB是Debian软件包格式,Debian包是标准的Unix归档文件,将包文件信息以及包内容,经过gzip和tar打包而成。

deb格式是什么?

deb是Debian软件包格式的文件扩展名。

deb格式是Debian系统(包含Debian和Ubuntu)专属安装包格式,配合APT软件管理系统,成为了当前在Linux下非常流行的一种安装包。进入2.x时代之后有Cydia作者JayFreeman(saurik)移植到iPhone平台上,一起的还有APT软件管理系统。

Debian包是Unixar的标准归档,将包文件信息以及包内容,经过gzip和tar打包而成。处理这些包的经典程序是dpkg,经常是通过Debian的apt-get来运作。通过Alien工具,可以将deb包转换成rpm、tar.gz格式。

deb包在Linux操作系统中类似于windows中的软件包(exe),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。

deb包本身有三部分组成:数据包,包含实际安装的程序数据,文件名为data.tar.XXX;安装信息及控制脚本包,包含deb的安装说明,标识,脚本等,文件名为control.tar.gz;最后一个是deb文件的一些二进制数据,包括文件头等信息,一般看不到,在某些软件中打开可以看到。

deb本身可以使用不同的压缩方式。tar格式并不是一种压缩格式,而是直接把分散的文件和目录集合在一起,并记录其权限等数据信息。之前提到过的data.tar.XXX,这里XXX就是经过压缩后的后缀名。deb默认使用的压缩格式为gzip格式,所以最常见的就是data.tar.gz。常有的压缩格式还有bzip2和lzma,其中lzma压缩率最高,但压缩需要的CPU资源和时间都比较长。

data.tar.gz包含的是实际安装的程序数据,而在安装过程中,该包里的数据会被直接解压到根目录(即/),因此在打包之前需要根据文件所在位置设置好相应的文件/目录树。

而control.tar.gz则包含了一个deb安装的时候所需要的控制信息。一般有5个文件:control,用了记录软件标识,版本号,平台,依赖信息等数据;preinst,在解包data.tar.gz前运行的脚本;postinst,在解包数据后运行的脚本;prerm,卸载时,在删除文件之前运行的脚本;postrm,在删除文件之后运行的脚本;

在Cydia系统中,Cydia的作者Saurik另外添加了一个脚本,extrainst_,作用与postinst类似。

DEB安装包特点:

  • 丰富的资源:Cydia上本身就不少,更何况任何格式的安装包都可以转换为deb。

  • 相对方便的在线购买模式:CydiaStore,不过尽管没有App Store的5台设备的限制,但对国内用户来说,付款方式比较困难。

  • 破解难度较大,没有使用AppStore的验证方式,所以必须将验证和防破解措施加入程序里面,这样就比较难破解,对软件开发者来说是个好事。

  • 完善的Unix文件系统支持:无需以命令设置文件的权限、所有者和用户组(当然也可以以脚本来设置)

  • 完善的脚本支持:5个脚本依照安装和卸载的先后顺序执行,可以提供更多选择。比如备份还原操作,可以在preinst中备份文件,而在postrm中还原文件

  • 严格的依赖关系:deb遵循严格的依赖关系(于Depends和Pre-Depends指定),可以确保软件运行所必需的组件。在线安装的时候会自动安装所依赖的软件包。卸载时也很重要,比如软件包A依赖于B,当卸载B的时候会提示A依赖于B,卸载掉B的话会导致A不能用,这样可以确保系统的完整性和稳定性。

  • Conflicts、Replaces、Provides等键值的存在可以实现冲突提示或替换其它软件包。

  • 完全权限:由于deb必须以最高权限root的身份运行,deb可以对系统任何位置进行操作,换句话说,deb拥有对整个系统的完全控制,因此deb安装包软件可以实现很多ipa不能实现的功能。

  • 相对简单的获取方式(在线或离线)和安装方式,也不用担心在不同机器上同步会删掉程序的问题。

  • 安装相对简单:其实无论是哪种安装包,安装方法都不算很复杂,只不过deb稍微复杂一些。

更多相关知识,请访问常见问题栏目!

以上就是deb是什么格式的详细内容,更多请关注风君子博客其它相关文章!