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 個月發布一個新版本,並提前固定發布日期。因此,Ubuntu 會從 Debian 的開發分支取出副本、凍結版本、修復問題,然後發布。

22 年後,兩者仍共用套件格式與套件管理工具,而且背後大部分的套件封裝工作只需完成一次。兩者不共用的是發布時程、支援合約,以及對預設安裝內容的看法。選擇伺服器作業系統時,這是很實用的區別,因為它能區分外觀上的差異與會耗費你一個下午的差異。

Ubuntu 的起源

Ian Murdock 於 16 August 1993 創立 Debian Project。到了 2004 年,Debian 已是當時規模最大的志願者維護 distribution,但更新速度很慢。Debian 3.0 "woody" 於 19 July 2002 發布;後繼版本 Debian 3.1 "sarge" 直到 6 June 2005 才推出。兩個 stable release 之間相隔將近 3 年。在這段期間,任何想在 Debian server 上使用最新軟體的人,都無法從 Debian 本身取得受支援的方案。

2004 年 4 月,Mark Shuttleworth 邀請約 12 名 Debian developer 到他位於 London 的公寓,規劃一個依固定時程發布的 Debian-based system,並創立 Canonical Ltd 聘用他們。第一個 release Ubuntu 4.10 "Warty Warthog" 在 6 個月後,即 20 October 2004 推出。版本號代表發布日期:4.10 表示 2004 年 10 月,26.04 表示 2026 年 4 月。

Ubuntu 從來不是一般意義上的 fork。Fork 只會複製一次 codebase,之後便脫離原始專案自行發展。Ubuntu 則會在每個 cycle 再次複製 Debian。套件取自 Debian unstable,也就是 Debian 稱為 sid 的 rolling branch;這份複本會在每個 Ubuntu cycle 的前幾週透過自動程序持續更新。import freeze 之後,Ubuntu developer 必須手動匯入後續套件,並依據 freeze rules 說明其必要性。Linux distribution 的完整家族樹列出了許多真正的 fork。Ubuntu 並不是其中之一,而是永久性的 downstream。

兩個專案仍共用的部分

共用的部分遠多於不同的部分。兩者都使用 .deb 套件格式,底層採用 dpkg,上層採用 apt;兩者也都遵循 Debian Policy,規定檔案的安裝位置,以及套件如何宣告相依性。Ubuntu 自己的開發者文件指出,約有五分之四的原始碼套件直接從 Debian 複製,完全未經修改。Debian 維護者修正錯誤時,通常也同時修正了 Ubuntu 使用者遇到的問題,而雙方往往都未察覺。

Ubuntu 修改套件時,版本字串會反映這項變更。Debian 的 1.2.3-4 會變成 1.2.3-4ubuntu1;這個後綴表示本地修改,兩個專案都稱之為 delta。Ubuntu 會公開每個曾修改套件的完整 delta,並將修補程式送回 Debian 的套件追蹤系統。因此,Debian 維護者可以查看下游所做的變更,並在需要時採用。

這樣是否足夠,自 2005 年起就一直有人爭論。與其選邊站,不如直接說明爭論的重點。從 Debian 的角度來看,問題在於投入的工作落在哪裡:Canonical 出資讓人員在下游工作,下游取得使用者與關注,而將修正回傳上游則是額外工作,卻沒有人獲得報酬。從 Ubuntu 的角度來看,六個月的期限無法配合沒有期限的專案,因此等待 Debian 並不總是可行。這兩種說法都成立,但從未阻止套件持續在兩者之間流動。

準備就緒後發布,或依行事曆上的日期發布

Debian 的發布日期是結果,不是承諾。Debian 12 "bookworm" 於 10 June 2023 發布,Debian 13 "trixie" 則於 9 August 2025 發布,兩者相隔約兩年,但沒有任何保證下一次的間隔也會相同。目前的 testing 分支稱為 "forky",尚未訂定發布日期,因為 Debian 會等到 release-critical bug 數量顯示可以發布時,才會公布日期。

Ubuntu 的日期是承諾。Ubuntu 每 6 個月發布一個版本,而每 4 個版本中,偶數年 4 月發布的版本會是 LTS(long term support)版本。Ubuntu 26.04 LTS "Resolute Raccoon" 於 23 April 2026 如期發布。中間的版本屬於 interim release,只提供 9 個月的更新,因此不適合部署在你不希望每年重建兩次的伺服器上。在伺服器上選擇 Ubuntu LTS 或 interim release,關鍵就在於這 9 個月的期限。

發布週期會決定升級行事曆,這也是兩者差異最實際的影響。在 Ubuntu LTS 上,你可以提前數年知道下一次就地升級會落在偶數年的 4 月,因此 從 Ubuntu 24.04 升級至 26.04 可以在 26.04 尚未存在前就開始規劃。在 Debian 上,則要留意 freeze 公告,並在版本實際發布時安排相關工作。

LTS 的變化

Ubuntu 6.06 LTS "Dapper Drake" 於 1 June 2006 發布,這是第一個 LTS 版本。在此之前,Ubuntu 是快速變動的系統,每半年就會替換一次,不適合作為企業建置 production server 的基礎。LTS 做了真正重要的一件事:將支援結束日期設在未來,而且距離足夠長,讓人能以此制定計畫。這項變化使 Ubuntu 成為預設的 server distribution;而半年發布週期則支撐了這項模式,因為每個 LTS 都是根據前置 interim release 中已完成驗證的工作組成。

Debian 則是從另一個方向達到相同目標。它的 stable release 原本就以較慢的速度更新;在 Debian 自身的 security team 停止支援後,Debian LTS project 會延長每個版本的支援期限。

誰提供支援,以及支援多久

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(expanded security maintenance)將期限延長至 10 年,涵蓋 main 與 universe;Legacy add-on 則進一步延長至 15 年。截至 2026 年 8 月,Ubuntu Pro 可免費供個人使用,最多支援五台機器。因此,在單一 VPS 上,十年支援期限不需要採購即可成立。Pro 也提供 livepatch 服務。這是 在 VPS 上執行 live kernel patching 的支援方式,可避免每次 kernel 安全更新都重新開機。

這些數字背後的支援結構,比數字本身更重要。使用 Ubuntu 時,您向建置該發行版的同一家公司購買支援。Debian 沒有這樣的公司,因此付費支援來自 Freexian 等第三方、託管服務商,或您自己的團隊。

初始化系統,以及終結爭論的表決

最明顯的技術分歧在於初始化系統。它是核心啟動的第一個程序,也是之後所有服務的監督程序。Ubuntu 6.10 "Edgy Eft" 於 26 October 2006 發布,隨附由 Canonical 撰寫的 Upstart。爭論持續期間,Debian 多年維持使用 sysvinit。Debian Technical Committee 透過表決解決此事,並於 11 February 2014 作成決定;主席投下決定性的一票,支持 Debian 8 採用 systemd。

Ubuntu 在數天內跟進。Shuttleworth 發表了一篇標題為 "Losing graciously" 的文章說明這項決定,並直接指出原因:Ubuntu 本質上是 Debian 家族的一員,因此會採用該決議。Ubuntu 15.04 於 23 April 2015 預設採用 systemd,Debian 8 "jessie" 則於 26 April 2015,也就是 3 天後,同樣預設採用 systemd。

正因如此,現在大多數服務教學可以在兩者之間直接套用,無須修改。Unit files、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 的 Social Contract 與 DFSG(Debian free software guidelines)定義哪些內容可以納入 main。其他內容會放入 contrib 和 non-free。在 Debian 多數發展期間,這也包括一般網路與儲存硬體在運作前所需的二進位韌體 blob。2022 年通過 General Resolution 後,Debian 12 新增獨立的 non-free-firmware archive area,官方 installer image 也從此內含這些韌體。

Ubuntu 從第一天起便採取相反的決定。其 archive 分為 main 和 restricted,由 Canonical 提供支援,並包含 proprietary driver;另外還有由社群維護的 universe 和 multiverse。在 VPS 上,影響很小,因為虛擬硬體幾乎不需要韌體。在專用硬體上,這可能決定網路卡能否啟動。

核心也沿著相同方向分歧。截至 2026 年 8 月,Ubuntu 26.04 LTS 提供 Linux 7.0,Debian 13 提供 Linux 6.12。Ubuntu 也會透過 hardware enablement stack,在單一 LTS 期間更新核心;Debian 則在 stable release 的生命週期內維持同一個核心系列,並透過 backports 提供較新的版本。較新的版本通常能更完善地支援近期的 virtio 裝置與檔案系統。較舊的版本則表示你在 1 月測試的行為,到 12 月仍會維持一致。

依照另一個發行版的指示會造成什麼問題

大多數情況下,針對其中一個發行版撰寫的指南也能套用到另一個發行版。失敗通常集中在幾個已知環節。

  • 第三方 apt 儲存庫會依發行版和代號分別發布。支援 noblejammy 的供應商,可能完全不發布 trixie 的套件。此時的錯誤看起來像網路故障,而不是供應商的支援政策所致。
  • Launchpad PPA 只會針對特定 Ubuntu 系列進行建置。將 PPA 加入 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 會在每個 6 個月週期開始時,重新從 Debian unstable 匯入套件;Ubuntu 的開發者文件指出,未經修改直接複製的原始碼套件約占五分之四。Ubuntu 長期維持為 Debian 的下游發行版,因此 Debian 套件封裝知識通常可直接套用至 Ubuntu;在 Debian 中修正的問題,通常也會在無須額外處理的情況下傳給 Ubuntu 使用者。

Debian 上的 Ubuntu 教學能使用嗎?

通常可以,而且例外情況很明確。兩者都使用 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 適合重視較小的預設安裝內容與較慢的變更速度,而非固定升級行事曆的伺服器。兩者都使用相同套件格式提供相同軟體,因此選擇不會限制可託管的服務。