SSD Nodes Learn 🎉 VPS $5.50/月起
指南 Matt Connor作者: Matt Connor

Debian 与 Ubuntu 为什么分开?服务器该选谁

Ubuntu 于 2004 年从 Debian unstable 的快照起步,22 年来仍共用软件包格式和大部分打包工作。了解发布周期、支持合同与默认内容为何决定服务器选型。

Debian 与 Ubuntu 为何分开

Debian 与 Ubuntu 在 2004 年因发布周期不同而分开,而不是因为代码不同。Debian 由其发布团队判断何时达到发布条件,然后发布稳定版本。Ubuntu 承诺每 6 个月按预先确定的日期发布新版本,因此会复制 Debian 的开发分支,将其冻结,修复其中的问题,然后发布。

22 年后,两者仍共用软件包格式及其管理工具,而且背后的大部分打包工作只需完成一次。它们不共用的是发布计划、支持合同,以及对默认安装应包含哪些内容的统一看法。在为服务器选择操作系统时,这一区别很有用,因为它能区分外观上的差异和真正会让您耗费一下午时间的差异。

Ubuntu 的起源

Ian Murdock 于 16 August 1993 创建了 Debian 项目。到 2004 年,Debian 已是当时规模最大的志愿者维护发行版,但发布速度很慢。Debian 3.0 "woody" 于 19 July 2002 发布,其后继版本 Debian 3.1 "sarge" 直到 6 June 2005 才发布。两个稳定版本之间相隔了近 3 年。在此期间,想在 Debian 服务器上使用最新软件的用户,无法从 Debian 官方获得受支持的解决方案。

2004 年 4 月,Mark Shuttleworth 邀请约 12 名 Debian 开发者到他位于伦敦的公寓,计划构建一个按固定周期发布的 Debian 衍生系统,并创建 Canonical Ltd 雇用他们。首个版本 Ubuntu 4.10 "Warty Warthog" 于 6 个月后的 20 October 2004 发布。版本号表示发布日期:4.10 表示 2004 年 10 月,26.04 表示 2026 年 4 月。

Ubuntu 从来不是通常意义上的分支。分支会复制一次代码库,然后脱离原项目独立发展。Ubuntu 会在每个周期重新复制 Debian。软件包取自 Debian unstable,即 Debian 称为 sid 的滚动分支;每个 Ubuntu 周期开始后的前几周内,这份副本会通过自动方式持续更新。导入冻结后,Ubuntu 开发者必须手动导入后续软件包,并根据冻结规则说明导入理由。Linux 发行版更广泛的家族谱系中有许多真正的分支项目。Ubuntu 不属于这种情况。它是一个长期维护的下游发行版。

两个项目仍然有哪些共同点

共同部分远多于差异部分。两者都使用 .deb 软件包格式,底层采用 dpkg,上层采用 apt;两者也都遵循 Debian Policy,规定文件的安装位置以及软件包声明依赖关系的方式。Ubuntu 官方开发者文档指出,Ubuntu 的源软件包中约有五分之四直接从 Debian 复制而来,完全未作修改。在 Debian 中修复一个 bug 的维护者,实际上也在为 Ubuntu 用户修复这个 bug,通常双方都不会察觉。

如果 Ubuntu 修改了某个软件包,版本字符串会反映这一点。Debian 的 1.2.3-4 会变为 1.2.3-4ubuntu1,该后缀表示本地修改,两个项目都将其称为 delta。Ubuntu 会发布它修改过的每个软件包的完整 delta,并将补丁提交到 Debian 的软件包跟踪系统。这样,Debian 维护者可以查看下游所做的修改,并在需要时接收这些修改。

这一做法是否足够,自 2005 年以来一直存在争议。与其直接站队,不如明确说明争议双方的观点。站在 Debian 一方,问题在于工作成果最终落在哪里:Canonical 出资让人员在下游工作,下游获得了用户和关注,而将修复反馈到上游则需要额外工作,却没有人为此提供报酬。站在 Ubuntu 一方,6 个月的发布期限无法适应一个没有期限的项目,因此等待 Debian 并不总是可行。这两种说法都成立。但它们从未阻止软件包持续流动。

准备就绪后发布,而不是遵循日历日期

Debian 的发布日期是结果,不是承诺。Debian 12 "bookworm" 于 10 June 2023 发布,Debian 13 "trixie" 于 9 August 2025 发布,两者相隔约两年,但没有任何保证下一次间隔也会相同。当前的 testing 分支名为 "forky",尚未确定发布日期,因为 Debian 要等到关键发布缺陷数量表明可以发布时,才会公布发布日期。

Ubuntu 的日期则是承诺。Ubuntu 每六个月发布一个版本;每四个版本中,偶数年份 4 月发布的版本是 LTS(长期支持)版本。Ubuntu 26.04 LTS "Resolute Raccoon" 于 23 April 2026 按计划发布。中间的版本属于临时版本,只提供 9 个月的更新,因此不适合部署在不希望每年重建两次的服务器上。在服务器上选择 Ubuntu LTS 还是临时版本,关键取决于这 9 个月的支持周期。

发布节奏决定升级日程,这是两者差异最实际的影响。在 Ubuntu LTS 上,您可以提前数年确定下一次原地升级会在偶数年份的 4 月进行,因此可以在 26.04 发布前规划从 Ubuntu 24.04 升级到 26.04。在 Debian 上,您需要关注冻结公告,并在版本实际发布后安排升级工作。

LTS 的变化

Ubuntu 6.06 LTS “Dapper Drake” 于 2006 年 6 月 1 日发布,是第一个 LTS 版本。在此之前,Ubuntu 是一个快速迭代的系统,每年替换两次版本。企业不会据此构建生产服务器。LTS 带来了一项关键变化:将支持结束日期设定在未来,并预留足够长的时间,以便围绕该日期制定规划。这一变化使 Ubuntu 成为默认的服务器发行版。六个月的发布周期为此提供了基础,因为每个 LTS 版本都整合了前几个中间版本中已经验证过的改进。

Debian 则从另一个方向达到了相同的目标。它的 stable 版本本来就以较慢的速度更新;在 Debian 自己的安全团队停止维护后,Debian LTS 项目会延长每个版本的支持期限。

谁提供支持,支持多长时间

ChartSecurity support in years, counted from the release date
The data behind this chart
[
  {
    "label": "Debian stable",
    "support_duration": 3
  },
  {
    "label": "Debian LTS",
    "support_duration": 5
  },
  {
    "label": "Debian ELTS, paid",
    "support_duration": 10
  },
  {
    "label": "Ubuntu LTS",
    "support_duration": 5
  },
  {
    "label": "Ubuntu Pro ESM",
    "support_duration": 10
  },
  {
    "label": "Ubuntu Pro plus Legacy",
    "support_duration": 15
  }
]

Debian 官方安全团队为稳定版提供 3 年支持。此后,Debian LTS 团队将支持延长至 5 年。Debian 将该团队描述为由志愿者和企业组成的团队,而不是官方安全团队或发行团队。当前日期可以清楚地看到这一交接:bookworm 于 2026 年 6 月 11 日进入 LTS 阶段,支持到 2028 年 6 月 30 日;bullseye 的 LTS 阶段则于 2026 年 8 月 31 日结束。此后,Freexian 提供 Extended LTS(简称 ELTS),将支持延长至 10 年,但只覆盖付费客户实际使用的软件包子集。

Ubuntu LTS 可从 Canonical 获得 5 年的标准安全维护。Ubuntu Pro 订阅通过 ESM(扩展安全维护)将支持延长至 10 年,覆盖 main 和 universe;Legacy 附加服务则将支持延长至 15 年。截至 2026 年 8 月,Ubuntu Pro 可免费用于个人的最多五台计算机。因此,在单个 VPS 上无需采购订单即可获得十年支持。Pro 还提供 livepatch 服务。这是通过 live kernel patching on a VPS 实现内核安全更新而无需每次重启的受支持方式。

这些数字背后的支持结构比数字本身更重要。使用 Ubuntu 时,您向构建该发行版的同一家公司购买支持。Debian 没有这样的公司,因此付费支持来自 Freexian 等第三方、您的托管服务提供商,或您自己的团队。

init 系统,以及结束争论的投票

最明显的技术分歧是 init 系统。它是内核启动的第一个进程,也是此后所有服务的监督进程。Ubuntu 6.10 “Edgy Eft” 于 26 October 2006 发布,随附由 Canonical 编写的 Upstart。争论持续期间,Debian 多年来一直使用 sysvinit。Debian 技术委员会通过投票解决了这一问题。投票于 11 February 2014 结束,主席投下决定性一票,支持将 systemd 用于 Debian 8。

Ubuntu 在数日后跟进。Shuttleworth 发布了一篇题为 “Losing graciously” 的文章说明这一决定,理由很明确:Ubuntu 从根本上属于 Debian 家族,因此会采用这一结果。Ubuntu 15.04 于 23 April 2015 默认使用 systemd,Debian 8 “jessie” 则于 26 April 2015 默认使用 systemd,晚了 3 天。

正因为两者最终趋于一致,大多数服务教程无需修改即可在两种系统之间使用。单元文件、systemctljournalctl 在两者上的行为相同。Debian 13 随附 systemd 257,Ubuntu 26.04 LTS 随附 systemd 259,因此两者在这方面的差异是版本号,而不是设计。

Snap,以及无法移植的部分

Ubuntu 16.04 LTS 在 2016 年引入了 snap 软件包,18.04 则是首个将部分默认应用作为 snap 提供的版本。snap 是一个自包含的软件包,其中包含自身依赖项的副本。因此,上游项目可以同时向所有受支持的 Ubuntu 版本推送新版本,而不必等待软件仓库完成更新。

没有其他主要发行版将 snap 设为默认选项,原因不在于其格式。snapd客户端只连接到一个由 Canonical 运营的软件仓库,而该仓库的服务器端并非开源。因此,采用 snap 的发行版会将部分软件分发工作交给另一家厂商。Debian 没有这样做,也不会默认安装 snapd。

这正是上游说明会悄然失效的地方。Certbot 是最明显的例子:其官方文档建议从 snap 安装,并警告发行版软件包“在采用 LTS 模式的发行版中往往很快就会过时”。在 Ubuntu 上照着该页面操作即可正常运行。在全新安装的 Debian 服务器上照做时,第一步就没有可执行所需操作的组件。出于这个原因,我们自己的 Ubuntu 24.04 上为 Nginx 配置 Certbot 的指南使用发行版软件包。

内核、固件与 non-free 的问题

Debian 社会契约和 DFSG(Debian 自由软件指南)规定哪些内容可以进入 main。其他内容会进入 contrib 和 non-free。在 Debian 的大部分历史中,这也包括普通网络和存储硬件正常工作前所需的二进制固件。2022 年通过一项全体决议后,Debian 12 增加了独立的 non-free-firmware 软件仓库区域,官方安装镜像也一直包含这些固件。

Ubuntu 从第一天起就做出了相反的选择。其软件仓库分为 main 和 restricted,由 Canonical 提供支持,其中包括专有驱动;另外还有由社区维护的 universe 和 multiverse。在 VPS 上,这一差异不大,因为虚拟硬件几乎不需要固件。在专用硬件上,这决定了网卡能否正常启动。

内核也沿着同一维度存在差异。截至 2026 年 8 月,Ubuntu 26.04 LTS 提供 Linux 7.0,Debian 13 提供 Linux 6.12。Ubuntu 还会通过硬件支持栈,在同一个 LTS 版本生命周期内持续推进内核版本;Debian 则在 stable 版本的整个生命周期内保持同一个内核系列,并通过 backports 提供较新的内核。较新的内核通常能更好地支持新近的 virtio 设备和文件系统。较旧的内核则意味着您在 1 月测试的行为,到 12 月仍然保持不变。

执行另一发行版的说明会导致哪些问题

大多数情况下,为其中一个发行版编写的指南也适用于另一个发行版。故障通常集中在几个已知环节。

  • 第三方 apt 软件源按发行版和代号分别发布。支持 noblejammy 的供应商可能不会为 trixie 发布任何内容,此时错误看起来像网络故障,而不是供应商的支持策略。
  • Launchpad PPA 仅针对特定的 Ubuntu 系列构建。将其添加到 Debian 后,系统会拉取与 Ubuntu 库版本链接的二进制包。这些包要么碰巧可以运行,要么会将 Ubuntu 的大部分运行时环境带到系统中。
  • 依赖 snapd、Ubuntu Pro 订阅或 Canonical livepatch 的步骤,在 Debian 中没有对应项。因此,指南中的这些部分必须替换,不能直接调整。
  • 默认镜像的登录用户不同。Ubuntu 镜像通常提供一个具有 sudo 权限且没有 root 密码的 ubuntu 用户;Debian 镜像通常提供一个 debian 用户;不同供应商提供的镜像也可能不同。修改 SSH 配置前,先确认当前镜像的情况。

当软件源没有适用于当前版本的 suite 时,apt 会明确报告:

E: The repository 'https://download.example.com/linux/debian forky Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.

这条消息表示供应商从未为你的代号发布软件包。镜像本身没有故障,重试也无法解决问题。供应商要么支持你的版本,要么不支持。

那么应该选择哪个?

如果您希望提前几年就能确定升级日期,并且希望从一家供应商购买支持服务,请选择 Ubuntu LTS。如果您希望默认安装更精简、运维链路中没有单一公司,并且希望基础系统的变化足够缓慢、减少意外,请选择 Debian stable。

其他方面的经验都可以迁移。两者都使用 apt,都遵循 Debian Policy,并且都以相同的软件包格式运行相同的应用,因此相关技能可以随系统迁移。如果您之前使用的是 Red Hat 或 Fedora,dnf 和 apt 命令对照可帮助您双向转换。如果您正在将这两个系统与部署时可用的其他镜像进行比较,我们的 VPS 操作系统选择指南会将它们与其他选项放在一起比较。

FAQ

Ubuntu 是 Debian 的分支吗?

不是。分支会复制一次代码库,之后独立维护。Ubuntu 在每个为期六个月的开发周期开始时,都会重新从 Debian unstable 导入代码;Ubuntu 开发者文档指出,未经修改直接复制的源软件包约占五分之四。Ubuntu 是 Debian 的长期下游发行版,因此 Debian 打包知识可以原样应用到 Ubuntu;在 Debian 中修复的问题通常也会在无需额外处理的情况下到达 Ubuntu 用户。

Ubuntu 教程适用于 Debian 吗?

通常适用,例外情况也很明确。两者都使用 apt 和 systemd,也都遵循 Debian Policy,因此软件包管理和服务管理方式基本一致。会导致教程失效的是与 Canonical 基础设施绑定的内容:基于 snap 的安装步骤、Launchpad PPA、Ubuntu Pro 命令,以及只为 Ubuntu 版本代号发布软件包的第三方 apt 软件源。如果软件源没有针对您的发行版提供 suite,apt 会报告“does not have a Release file”,这表示供应商从未为您的版本代号构建软件包。

Debian 和 Ubuntu 的安全更新持续多久?

Ubuntu LTS 可获得 Canonical 提供的 5 年标准安全维护;订阅 Ubuntu Pro 后为 10 年;使用 Legacy 附加组件后最长为 15 年。Debian stable 版本可从 Debian 安全团队获得 3 年支持,其中包括后续 LTS 阶段时总计为 5 年。Freexian 的付费 Extended LTS 最长可达 10 年,但仅覆盖客户请求维护的软件包。

对服务器而言,Debian 和 Ubuntu 哪个更好?

没有哪一个普遍更好,主要取决于发布节奏和支持方式。如果服务器必须有可预测的升级日期,并且需要向单一供应商购买支持,Ubuntu LTS 更合适。如果默认安装更精简、变化速度更慢比固定升级日历更重要,Debian stable 更合适。两者使用相同的软件和软件包格式,因此不会限制您能够托管的服务。