Linux 更新管理器如何運作?

Linux 更新管理器如何運作?

我想知道 Linux 的更新管理器是如何運作的。例如,我的 Linux 發行版如何檢查是否有任何可用的更新可供下載以及哪些伺服器可以下載這些更新?如果我正在處理不屬於主發行版的第三方軟體,這些程式如何與我的更新管理器互動以通知我這些程式有可用的更新?最後,關於這個主題有哪些好的文獻?

答案1

根據您的發行版,它會有所不同。

通常,每個發行版都會保留一個包含所有可安裝軟體包的龐大清單。這稱為軟體儲存庫或簡稱“repo”。 A套件管理器(apt、RPM、pacman 等)將定期從儲存庫中提取更新的軟體包清單。發行版開發人員擁有儲存庫中的軟體包的所有權,他們會做一些事情,例如以發行版期望的格式打包它們(存儲庫通常具有從上游檢索的原始源代碼生成的軟體包的編譯版本),觀察提交的錯誤向發行版發送有關軟體包的信息,在官方“普通”源代碼上應用補丁(也許可以使它們更好地集成到系統中,配置它們,或者修復上游尚未解決的問題),他們將觀看上游軟體包的更新可能適用於軟體儲存庫中的版本。

例如:

有些發行版其實並不會應用常規版本更新。例如,Ubuntu 將堅持使用發行版發行時發布的軟體版本。他們通常只修復安全問題或重大錯誤。這可以確保軟體不會意外更改(例如,下一個版本可能會有重大 UI 變更、新錯誤會破壞某些內容、大型組織可能會針對特定版本的原始程式碼應用自己的自訂修補程式)。軟體包維護者將每 6 個月從 Debian 獲取軟體包列表,應用 Ubuntu 修復/補丁,然後發布新版本的發行版。有此規則的一些例外情況,尤其是 Firefox,它將更新到 Mozilla 提供的最新穩定版本。

Debian 有穩定版、測試版和不穩定版。當發現軟體包已準備就緒時,它們將從不穩定狀態轉移到測試狀態。然後,Debian 每 1.5 年發布一個「穩定」版本,鎖定目前測試版本的軟體包。

同樣Ubuntu也有一個特殊的LTS(或長期支持)每 2 年左右發布一次,該版本的軟體包維護時間更長(5 年,儘管桌面軟體包過去是 3 年)。

其他發行版將盡可能追蹤原始碼。例如 Arch 和 Gentoo。他們被稱為“滾動發布'。儘管它們通常也有不穩定和穩定的類別,在驗證其功能時,軟體包會被移動,儘管可能只有幾個月甚至幾週,而不是像其他發行版那樣需要半年或更長時間。您可以在這些發行版上獲得更新版本的軟體,但代價是穩定性。

Debian 測試可以被認為是滾動發布。 Debian Stable 就像是 Ubuntu 的 LTS 版本。

大多數真正的第三方軟體(例如不是來自發行版儲存庫而是直接來自網站的軟體)根本不會與發行版的更新系統互動。如果您手動安裝軟體(除了使用 apt-get、yum 等),那麼您有責任保持其更新。

一些第三方將維護自己的儲存庫,您的更新系統可以將其放入其中。例如,Google 在 Ubuntu 上為 Chrome 維護了一個。還有許多 Launchpad PPA。在這種情況下,您將依賴第三方來維護更新。

相關內容