2.1.4. Debian 档案库基础

让我们从系统用户的角度来看看 Debian 档案库

[提示]提示

Debian 档案库官方政策的定义参见 Debian 政策文档,第2章 —— Debian 档案库

对于典型的 HTTP 访问,档案库在 “/etc/apt/sources.list” 文件中像下面那样指定,例如,现在 stable = buster 系统。

  1. deb http://deb.debian.org/debian/ buster main contrib non-free
  2. deb-src http://deb.debian.org/debian/ buster main contrib non-free
  3. deb http://security.debian.org/ buster/updates main contrib
  4. deb-src http://security.debian.org/ buster/updates main contrib

这里,我倾向于使用代号 “buster” 来代替套件名 “stable” ,以避免下一个 stable 版本发布时出现意外。

/etc/apt/sources.list” 的含义在 sources.list(5) 中进行了描述,下面是一些要点。

  • deb” 的那行定义了二进制软件包。

  • deb-src” 的那行定义了源代码软件包。

  • 第一个参数是 Debian 档案库的根 URL 。

  • 第二个参数是发行版名称:可以使用套件名或代号。

  • 第三个和之后的参数是 Debian 档案库的有效档案库范围名称。

如果只是用 aptitude(它不访问源代码相关的元数据),“deb-src”那行可以安全地删掉(或者在文件开头添加 “#” 来将它注释掉)。这可以加速档案库元数据的更新。URL 可以是“http://” 、“ftp://” 、 “file://” ……

[提示]提示

如果在上述的例子中,使用了 “sid” 代替 “buster” ,那么 “/etc/apt/sources.list” 中的 “deb: http://security.debian.org/” 这行就不需要了。因为没有用于 “sid” (unstable)的安全更新的档案库。

下面是配置文件所使用的 Debian 档案库站点的 URL 和套件名或代号的列表。

表 2.2. Debian 档案库站点列表

档案库 URL套件名(代号)目的
http://deb.debian.org/debian/stable (buster)stable (buster) release 版本
http://deb.debian.org/debian/testing (bullseye)testing (bullseye) release 版本
http://deb.debian.org/debian/unstable (sid)unstable (sid) release 版本
http://deb.debian.org/debian/experimentalexperimental pre-release 版本(可选,只适用于开发者)
http://deb.debian.org/debian/stable-proposed-updates用于下一个稳定版本的更新(可选)
http://security.debian.org/stable/updates用于 stable release 版本的安全更新(重要)
http://security.debian.org/testing/updates用于 testing release 版本的安全更新(重要)
http://deb.debian.org/debian/buster-updates用于 buster 的垃圾邮件过滤器、IM客户端等的兼容更新
http://deb.debian.org/debian/buster-backports用于 buster 的较新的 backported 软件包(可选)
[小心]小心

只有带有安全更新的纯净的 stable release 版本可以提供最佳的稳定性。运行大多数 stable release 版本的软件包之中混合一些来自 testingunstable release 版本的软件包会比运行纯净的 unstable release 版本冒更大的风险,这是因为库版本的不匹配导致的。如果在 stable release 版本下你真的需要一些程序的最新版本,请使用来自 buster-updateshttp://backports.debian.org (参见 第 2.7.4 节 “更新和向后移植”)的软件包。使用这些软件包时必须额外小心。

[小心]小心

在 “deb“ 行中,你只需列出 stabletesting 或者 unstable 套件中的一个即可,如果你在 “deb“ 行中混合了 stabletestingunstable 套件,APT 程序的执行速度将会变慢并且只有最新的档案库是有用的。只有在 “/etc/apt/preferences“ 文件带有明确目标的时候,混合的列表才是有意义的。(查看第 2.7.3 节 “调整候选版本”)。

[提示]提示

对于使用 stabletesting 套件的 Debian 系统而言,在 “/etc/apt/sources.list” 中包含带有 “http://security.debian.org/” 的一行是不错的主意。它会启用安全更新。

[注意]注意

Debian 安全团体将会修正 stable 档案库的安全缺陷。这些行为是十分严格可靠的。testing 档案库中的缺陷,不一定会被 Debian 测试安全团体修正。由于一些原因,这些行为相对 stable 档案库没有那么严格,您可能需要等待已修正的 unstable 软件包移植到 testingunstable 档案库的缺陷,交由各个维护者修改。经常维护的unstable 软件包通常处于相当好的状况,因为它利用了上流最新的安全修正。有关 Debian 怎样处理安全缺陷,请参见 Debian安全常问问题

表 2.3. Debian 归档区域(area)列表

区域软件包数量软件包组件标准
main59430遵从 Debian 自由软件指导方针(DFSG),并且不依赖于 non-free
contrib343遵从 Debian 自由软件指导方针(DFSG),但依赖于 non-free
non-free652不遵从 Debian 自由软件指导方针(DFSG)

上述软件包的数量是 amd64 架构的。main 区域提供 Debian 系统(参见 第 2.1.5 节 “Debian 是100% 的自由软件”)。

通过把你的浏览器指向档案库 URL,这些 URL 在 distspool 之后是各不相同的,Debian 档案库能够被有规划的组织。

发行版可以用套件或代号来指定。发行版在许多文档中也被当做是套件的同义词。套件和代号的关系总结如下。

表 2.4. 套件和代号的关系

时间suite = stablesuite = testingsuite = unstable
buster 发布后codename = bustercodename = bullseyecodename = sid
bullseye 发布后codename = bullseyecodename = bookwormcodename = sid

代号的历史参见 Debian FAQ: 6.2.1 以前用过哪些代号名?

在较严格的 Debian 档案术语,“部分 section”这一词特指按应用领域来分类的软件包类别。(但是,主要部分 (“main section”) 这一词有时会用来描述 Debian 档案区中,名为”main 主要”的区域 。)

Debian 开发者(DD)每次上传软件包到 unstable 档案库(通过 incoming 处理),都必须确保上传的软件包与最新的 unstable 档案库中的最新软件包兼容。

如果 DD 故意打破重要的库升级等的这种兼容性,这通常会在 Debian 开发者邮件列表等进行公告。

在 Debian 档案库维护脚本将软件包从 unstable 档案库移动到 testing 档案库前,档案库维护脚本不仅检查时间(约10天)和软件包的 RC bug 报告的状态,还尝试确保它们可以和最新的 testing 档案库中的软件兼容。这个过程使得testing 档案库非常正确可用。

通过由发布团队领导的逐步冻结档案库的过程,并进行一些手动干预,使 testing 档案库完全一致,无缺陷。然后,将旧的 testing 档案库的代码名称分配给新的 stable 档案库,并为新的 testing 档案库创建新的代码名称。新的 testing 档案库最初的内容和新发布的 stable 档案库的内容完全相同。

unstabletesting 档案库都可能会遭受由以下几个因素导致的临时的小故障。

  • 损坏的软件包被上传到档案库(多见于 unstable

  • 延迟接受新的软件包到档案库(多见于 unstable )

  • 档案库时间同步问题( testingunstable

  • 手动干预档案库,例如移除软件包(多见于 testing )等。

因此,如果你决定使用这些档案库,你应该能够修复或忍受这些类型的小故障。

[小心]小心

在新的 stable 版本发布后的几个月,大多数桌面用户应该使用带有安全更新的 stable 档案库,即使他们通常使用 unstabletesting 档案库。在这个过渡期中,unstabletesting 档案库不适合大多数人。你使用 unstable 档案库的系统是很难保持良好的工作状态的,因为它会遭受核心软件包的大量升级狂潮。 testing 档案库不大有用,因为它包含有和没有安全支持的 stable 档案库相同的内容(Debian testing 安全公告 2008-12)。一个月左右的时间后, 如果你仔细点的话, unstable 档案库或许可以使用。

[提示]提示

跟踪 testing 档案库时,由一个已移除的软件包引起的问题通常可以安装 unstable 档案库中相同的软件包(已修复 bug )来解决。

档案库的定义参见 Debian 政策文档