所有開源發行版都面臨的一個經典難題是“太快/太慢”的問題。使用者安裝作業系統是為了能夠使用其應用程式。像 Fedora 這樣的全面的發行版在大量可用軟體方面有其優勢和劣勢。雖然有使用者想要的軟體包,但可能無法使用其所需的版本。以下是模組化如何幫助解決該問題。
對於某些使用者,Fedora 有時升級得太快。其快速發布週期以及盡可能提供最新穩定軟體的願望可能導致與應用程式的相容性下降。如果因為 Fedora 將 Web 框架升級為不相容的版本而導致使用者無法執行 Web 應用程式,則會非常令人沮喪。對“太快”問題的經典回答是“Fedora 應該有一個 LTS 版本。”然而,這種方法只能解決問題的一半,並使這個難題的另一面變得更糟。
有時候 Fedora 對某些使用者而言又升級速度太慢。例如,Fedora 的發布可能與其它想要的軟體的發布時間不匹配。一旦 Fedora 版本宣布穩定,打包者必須遵守 穩定更新政策 並且不能在系統中引入不相容的更改。
Fedora 的模組化從兩個方面解決了這個問題。Fedora 仍將根據其傳統政策發布標準版本。但是,它還將提供一組模組給出流行軟體的限定替代版本。那些處於“太快”陣營的人仍然可以享受 Fedora 的新核心和其它通用平台增強功能。此外,他們仍然可以存取支援其應用程式的舊框架或工具鏈。
此外,那些喜歡更新潮一些的使用者可以存取比發布時更新的軟體。
模組化不是 軟體集合 的直接替代品。這兩種技術試圖解決許多相同的問題,但有明顯的差異。
軟體集合可以在系統上並行安裝不同版本的軟體包。但是,它們的缺點是每份安裝包都存在於檔案系統上的它們自己的名稱空間裡面。此外,需要告訴每個依賴它們的應用程式在哪裡找到它們。
使用模組化,系統上只存在一個版本的軟體包,但使用者可以選擇哪個版本。優點是該版本位於系統的標準位置。該程式包不需要對依賴它的應用程式進行特殊更改。來自使用者研究的反饋表明,大多數使用者實際上並不依賴於並行安裝。容器化和虛擬化解決了這個問題。
這是另一個常見問題。為什麼使用者在可以使用容器時還需要模組?答案是,人們仍然需要維護容器中的軟體。 模組為那些使用者不需要自己維護、更新和修補的容器提供預打包的內容。這就是 Fedora 如何利用發行版的傳統價值並將其轉移到新的容器化的世界。
以下是模組化如何為 Node.js 和 Review Board 的使用者解決問題的範例。
許多讀者可能熟悉 Node.js,這是一個流行的伺服器端 JavaScript 執行時環境。Node.js 採用偶數/奇數版本策略。它的社群支援偶數版本(6.x、8.x、10.x 等)約 30 個月。同時,他們也支援奇數版本,基本上是 9 個月的開發者預覽版。
由於這個週期的原因,Fedora 在其穩定的倉庫中只攜帶最新的偶數版本的 Node.js。它完全避免了奇數版本,因為它們的生命週期比 Fedora 短,並且通常與 Fedora 發布週期不一致。對於一些希望獲得最新和最大增強功能的 Fedora 使用者來說,這並不合適。
由於模組化,Fedora 28 不是提供了一個版本,而是提供了三個版本的 Node.js,以滿足開發人員和穩定部署的需求。Fedora 28 的傳統倉庫帶有 Node.js 8.x。此版本是發布時最新的長期穩定版本。模組倉庫(預設情況下在 Fedora 28 Server 版本上可用)也使得更舊的 Node.js 6.x 版本和更新的 Node.js 9.x 開發版本可用。
另外,Node.js 在 Fedora 28 之後幾天發布了 10.x 上游版本。過去,想要部署該版本的使用者必須等到 Fedora 29,或者使用來自 Fedora 之外的原始碼。但是,再次感謝模組化,Node.js 10.x 已經在 Fedora 28 的 Modular Updates-Testing 倉庫中 可用 了。
Review Board 是一個流行的 Django 應用程式,用於執行程式碼審查。Fedora 從 Fedora 13 到 Fedora 21 都包括了 Review Board。此時,Fedora 轉移到了 Django 1.7。由於 Django 資料庫支援的向後相容性在不斷變化,而 Review Board 無法跟上。它在 RHEL / CentOS 7 的 EPEL 倉庫中仍然存在,而僅僅是因為這些發行版的版本幸運地被凍結在 Django 1.6上。儘管如此,它在 Fedora 的時代顯然已經過去了。
然而,隨著模組化的出現,Fedora 能夠再次將舊的 Django 作為非預設模組流發布。因此,Review Board 已作為一個模組在 Fedora 上恢復了。Fedora 承載了來自上游的兩個受支援的版本:2.5.x 和 3.0.x。
Fedora 一直為使用者提供非常廣泛的軟體使用。Fedora 模組化現在為他們所需的軟體版本提供了更深入的選擇。接下來的幾年對於 Fedora 來說將是非常令人興奮的,因為開發人員和使用者可以以新的和令人興奮的(或舊的和令人興奮的)方式組合他們的軟體。