Debian 计划的每个程序同时有 6 个不同版本,实验、不稳定、测试、稳定、旧稳定、与 极旧稳定。每个版本都有自己的发展流程。为了了解起见,先看看程序的发展过程,由最初的包装至纳入 Debian 的稳定版。
首先看看 实验 发行的特例:对应于还在开发中的 Debian 软件包,不必已做完,其名称已说明一切。还没有全部通过此阶段;部分开发者加入软件包为了得到有经验 (或勇敢) 用户的回馈。
否则,此发行版通常会将重大修改纳入基础软件软件包中,因为一旦集成进 Unstable 不稳定版中的软件有重大漏洞,可能导致不堪设想的后果。因此,它是完全隔绝且独立的发行版,其软件包绝不会移入其他版本中 (除非有情况需要维护者或 ftp 管理者直接、快速干预)。它也不能自我纳入:仅既有软件包的部分子集具有 Experimental 实验版,通常不包括基础系统。此发行版因此会与其他能自我纳入的发行版一同搭配使用,例如 Ustable 版。
让我们回到典型软件软件包的例子。维护者制作出最初的软件包,编绎给 Unstable 版使用并置于 ftp-master.debian.org
服务器上。这个动作会先经过 ftp 管理员的审阅与验证,再放到 Unstable 发行版中;对于那些比起重大问题更关心软件是否处于最新状态的用户而言,这就是“时下最新”的发行版。他们会探索程序并协助测试。
碰到错误后,向软件包维护者报告。维护者会定期准备修正版,然后再上传至服务器。
Every newly updated package is updated on all Debian mirrors around the world within six hours. The users then test the corrections and search for other problems resulting from the modifications. Several updates may then occur rapidly. During these times, autobuilder robots come into action. The maintainer uploads the package sources (without any precompiled package). The autobuilders take over and automatically compile versions for all supported architectures. Some compilations may fail; the maintainer will then receive a bug report indicating the problem, which is then to be corrected in the next versions. When the bug is discovered by a specialist for the architecture in question, the bug report may come with a patch ready to use.
稍后,软件包略为成熟后;编译全部的架构,不再发生新的修订。才能成为测试版的候选 — 基于某些标准供不稳定软件包使用。根据以下的品管保证细目,每天都有程序被自动选入测试版:
在所有官方支持的架构里编绎成功;
没有严重错误,或至少是比目前版本较少错误的将纳入到测试版;
至少置于不稳定 版中5天;这段时间通常足够发现与报告任何严重的问题(如软件包提供了测试样例且测试样例通过,所需时间可以更短);
满足测试版对依赖关系的要求,或至少能够与其他有问题的软件包共同迁移;
自动化软件包质量测试(autopkgtest)——如果已定义的话——未出现任何异常。
此系统不是万无一失的;在测试版中也经常发现软件包的严重错误。虽然如此,目前的整个流程还是很有效的,且测试版的问题远远少于不稳定版。对很多人来说,是稳定与新鲜之间的折衷选择。
假设我们的软件包已经纳入测试版。只要还有改进的空间,其维护者必然奋力改进之并从不稳定版(以后纳入测试版就快多了:除非发生极大的变化,其依赖的其它软件包已存在而无需投入更多精力)重新来过。达到阶段性成果后,维护者便告一段落。下个步骤是将其纳入稳定版发行;这实际上只是在某个发布管理员决定时间节点上将测试版的内容纳入而已。理想的情况下,在这个发布的时间节点上新版安装器已准备完成,且测试版没有严重的错误。
实际上,还没有真的进入稳定版,Debian 必须妥协:移除维护者无法更正错误的软件包、或容许在数千个程序中还有几个错误。发布经理曾声明冻结期间,想被纳入测试版更新必须通过认可的进程。其目标是避免新版本(及其新错误),与只有被认可的错误修订。
After the release of a new stable version, the Stable Release Managers manage all further development (called “revisions”, ex: 12.1, 12.2, 12.3 for version 12). These updates systematically include all security patches. They will also include the most important corrections (the maintainer of a package must prove the gravity of the problem that they wish to correct in order to have their updates included).
最后,我们假设的软件包已经纳入稳定发行版中。这道进程,必须费上好一翻功夫,这正说明新 Debian 稳定发行版之间的间隔为何如此之久。毕竟也是如此,Debian 才能获得其高品质的名声。此外,同时间这三种发行版本都吸引了各自的用户群。比起最新版的 GNOME,服务器的系统管理员更在意系统稳不稳定,因此他们会选择 Debian Stable 稳定版来满足其需求。至于比起坚若磐石的稳定性更在意是否为最新版 GNOME 或 KDE Plasma 的最终用户,或许会喜欢 Debian Testing 测试版,在相对新颖的软件版本和较少发生重大问题之间折衷。最后,开发者和有经验的用户,可能自愿在 Debian Ustable 不稳定版中的丛林小径中披荆斩棘,一边测试 Debian 中的最新发展,一边承受感到头痛之苦与遭遇任何新程序漏洞的风险。各自选择各自的 Debian!
每个稳定版预计有五年寿命,每二年发行新的稳定版,同一时间最多可有三个支持的稳定版在流通。新的稳定版发布时,前个版本就变成旧稳定版而更早的就成为老旧稳定版。
Debian 的长期支持版 (This Long Term Support, LTS) 是新的成员:由独立的奉献者及公司联合的 Debian LTS 团队完成。Debian 安全团队不再维护旧的版本。
The Debian security team handles security support in the current
Stable release and also in the
Oldstable release (but only for as long as is needed to ensure one year of overlap with the current stable release). This amounts roughly to three years of support for each release. The Debian LTS team handles the last (two) years of security support so that each release benefits from at least 5 years of support and so that users can upgrade from version N to N+2, for example, from Debian 9
Stretch to Debian 11
Bullseye.