01.27 Fedora 28 服務器版的模塊化

Fedora 28 服務器版的模塊化

Fedora 的模塊化從兩個方面解決了這個問題。Fedora 仍將根據其傳統政策發佈標準版本。但是,它還將提供一組模塊給出流行軟件的限定替代版本。

-- Stephen Gallagher

什麼是模塊化

所有開源發行版都面臨的一個經典難題是“太快/太慢”的問題。用戶安裝操作系統是為了能夠使用其應用程序。像 Fedora 這樣的全面的發行版在大量可用軟件方面有其優勢和劣勢。雖然有用戶想要的軟件包,但可能無法使用其所需的版本。以下是 模塊化(Modularity)如何幫助解決該問題。

對於某些用戶,Fedora 有時升級得太快。其快速發佈週期以及儘可能提供最新穩定軟件的願望可能導致與應用程序的兼容性下降。如果因為 Fedora 將 Web 框架升級為不兼容的版本而導致用戶無法運行 Web 應用程序,則會非常令人沮喪。對“太快”問題的經典回答是“Fedora 應該有一個 LTS 版本。”然而,這種方法只能解決問題的一半,並使這個難題的另一面變得更糟。

有時候 Fedora 對某些用戶而言又升級速度太慢。例如,Fedora 的發佈可能與其它想要的軟件的發佈時間不匹配。一旦 Fedora 版本宣佈穩定,打包者必須遵守 穩定更新政策 並且不能在系統中引入不兼容的更改。

Fedora 的模塊化從兩個方面解決了這個問題。Fedora 仍將根據其傳統政策發佈標準版本。但是,它還將提供一組模塊給出流行軟件的限定替代版本。那些處於“太快”陣營的人仍然可以享受 Fedora 的新內核和其它通用平臺增強功能。此外,他們仍然可以訪問支持其應用程序的舊框架或工具鏈。

此外,那些喜歡更新潮一些的用戶可以訪問比發佈時更新的軟件。

模塊化不是什麼?

模塊化不是 軟件集合 (Software Collections) 的直接替代品。這兩種技術試圖解決許多相同的問題,但有明顯的差異。

軟件集合可以在系統上並行安裝不同版本的軟件包。但是,它們的缺點是每份安裝包都存在於文件系統上的它們自己的命名空間裡面。此外,需要告訴每個依賴它們的應用程序在哪裡找到它們。

使用模塊化,系統上只存在一個版本的軟件包,但用戶可以選擇哪個版本。優點是該版本位於系統的標準位置。該程序包不需要對依賴它的應用程序進行特殊更改。來自用戶研究的反饋表明,大多數用戶實際上並不依賴於並行安裝。容器化和虛擬化解決了這個問題。

為什麼不乾脆使用容器化?

這是另一個常見問題。為什麼用戶在可以使用容器時還需要模塊?答案是,人們仍然需要維護容器中的軟件。 模塊為那些用戶不需要自己維護、更新和修補的容器提供預打包的內容。這就是 Fedora 如何利用發行版的傳統價值並將其轉移到新的容器化的世界。

以下是模塊化如何為 Node.js 和 Review Board 的用戶解決問題的示例。

Node.js

許多讀者可能熟悉 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

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 來說將是非常令人興奮的,因為開發人員和用戶可以以新的和令人興奮的(或舊的和令人興奮的)方式組合他們的軟件。


via: https://fedoramagazine.org/working-modules-fedora-28/

作者: Stephen Gallagher 選題: wxy 譯者: wxy 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


分享到:


相關文章: