第 7 章 Debian 软件包管理系统基础 您所在的位置:网站首页 广告脚本的基本格式是什么意思 第 7 章 Debian 软件包管理系统基础

第 7 章 Debian 软件包管理系统基础

2024-06-17 05:27| 来源: 网络整理| 查看: 265

第 7 章 Debian 软件包管理系统基础

目录

7.1. 什么是 Debian 软件包?7.2. Debian 二进制软件包的格式是什么?7.3. 为什么 Debian 软件包的文件名这么长?7.4. 什么是 Debian 控制文件?7.5. 什么是 Debian conffile?7.6. 什么是 Debian preinst、postinst、prerm,和 postrm 脚本?7.7. 什么是必备、必需、重要、标准、可选和额外软件包?7.8. 什么是虚拟软件包?7.9. 一个软件包依赖、推荐、建议、冲突、替代、破坏或者提供另一个软件包是什么意思?7.10. “预依赖”是什么意思?7.11. 软件包状态中的未知、安装、卸载、清除和保留都是什么意思?7.12. 如何将软件包设置为“保留”?7.13. 如何安装源码包?7.14. 如何从源码包构建二进制包?7.15. 我应该如何创建自己的 Debian 软件包?

本章涉及 Debian 包管理系统的一些底层细节。如果您主要是想了解相关工具的用法,请跳过本章,并阅读第 8 章 Debian 软件包管理工具和/或第 9 章 使您的 Debian 系统保持最新状态。

7.1. 什么是 Debian 软件包?

软件包通常包括了实现一组互相关联的命令或功能所需要的一切文件。Debian 软件包有两种类型:

二进制包,包含了可执行文件、配置文件、man/info 页面、版权信息,以及其他文档。这些软件包使用一种 Debian 特有的存储格式进行分发(参见第 7.2 节 “Debian 二进制软件包的格式是什么?”);它们的扩展名通常是“.deb”。二进制包可以使用 Debian 的 dpkg 工具进行解包(也许会通过 aptitude 等前端进行调用);更多细节请阅读手册页。

源码包,包含了一个 .dsc 文件描述该源码包(包括下述文件的文件名),一个 .orig.tar.gz 文件,使用经过 gzip 压缩的 tar 档案保存未经修改的源代码,通常还包括一个 .diff.gz 文件,保存了 Debian 对源代码的修改。dpkg-source 工具可以打包和解包 Debian 源码包;更多细节请阅读手册页。(apt-get 程序可以用作 dpkg-source 的前端。)

软件包管理系统使用“依赖关系”安装软件,这些依赖由软件包的维护者小心地指定。依赖关系在每个软件包含有的 control 文件里给出。例如,包含 GNU C 编译器的软件包(gcc)“依赖”软件包 binutils,后者包含了链接器和汇编器。如果用户在没有安装 binutils 的情况下尝试安装 gcc,包管理系统(dpkg)会给出一条错误信息,提示它依赖 binutils,并停止安装 gcc。(不过,如果用户坚持,这个功能可以被覆盖,参见 dpkg(8))。阅读下方的第 7.9 节 “一个软件包依赖、推荐、建议、冲突、替代、破坏或者提供另一个软件包是什么意思?”以了解更多信息。

Debian 的包管理工具可以用于:

操作和管理软件包或其组成部分,

管理软件包在本地覆盖的文件,

帮助开发者建立软件包档案库,以及

帮助用户从远程档案库站点安装软件包。

7.2. Debian 二进制软件包的格式是什么?

Debian“软件包”,或称作 Debian 档案文件,包含了与特定的程序套件或一组关联的程序有关的可执行文件、库和文档。正常情况下,Debian 档案文件的文件名以 .deb 结尾。

Debian 二进制包格式的内部细节在 deb(5) 手册页中有描述。这一内部格式可能会发生变化(在 Debian GNU/Linux 的各个主要版本之间),所以如果您需要对 .deb 文件进行底层操作,请总是使用 dpkg-deb(1)。

7.3. 为什么 Debian 软件包的文件名这么长?

Debian 二进制包的文件名遵循以下约定:_-_.deb

注意 foo 应当是软件包的名称。要检查特定的 Debian 档案文件(.deb 文件)的包名,可以使用以下方法之一:

在 Debian 档案站点存储它的目录中检查“Packages”文件。该文件对每个软件包都有一节简要的信息;每节的第一行就是正式的包名。

使用命令 dpkg --info foo_VVV-RRR_AAA.deb(其中 VVV、RRR 和 AAA 分别是该软件包的版本号、修订版本号和架构)。这将显示被解包的档案文件的包名和其他一些信息。

VVV 部分是上游开发者指定的版本号。版本号没有固定的标准,所以可能出现诸如“19990513”和“1.3.8pre1”之类迥异的格式。

RRR 部分是 Debian 修订版本号,由 Debian 开发者指定(如果用户自己构建软件包,则由用户指定)。这一数字对应了 Debian 软件包的修订级别,所以,一个新的修订级别通常意味着对该软件包的 Debian Makefile(debian/rules)、Debian 控制文件(debian/control)、安装或卸载脚本(debian/p*),或者配置文件的修改。

AAA 部分给出了该软件包针对的处理器。常见的是 amd64,也就是 AMD64、Intel 64 或者 VIA Nano 处理器。欲了解其他可能的值,请阅读第 6.7 节 “Debian 档案库中的那些目录都是干什么用的?”重温 Debian 档案库的目录结构。欲了解详细信息,请阅读 dpkg-architecture(1) 手册页中关于“Debian 架构”的描述。

7.4. 什么是 Debian 控制文件?

有关 Debian 控制文件的内容的细节,请阅读 Debian 政策手册的第 5 节,参见第 12.1 节 “Debian 系统中还能获得哪些有针对性的文档?”。

简短地说,Debian 软件包 hello 的控制文件样例如下:

Package: hello Version: 2.9-2+deb8u1 Architecture: amd64 Maintainer: Santiago Vila Installed-Size: 145 Depends: libc6 (>= 2.14) Conflicts: hello-traditional Breaks: hello-debhelper (


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有