如何選擇 Linux 發行版

Undefined443發表於2024-05-05

簡介

要建立雲伺服器,首先需要安裝作業系統。在現代環境中,幾乎所有情況下都是指 Linux 作業系統。從歷史上看,Windows 伺服器和其他型別的 Unix 在特定的商業環境中都很流行,但現在幾乎每個人都在執行 Linux,這是因為 Linux 支援廣泛、許可免費或靈活,而且在伺服器計算領域總體上無處不在。Linux 有許多發行版,每個發行版都有自己的維護者,有些發行版有商業供應商支援,有些則沒有。以下各節詳細介紹的發行版是執行雲伺服器的一些最流行的作業系統。

概述

Ubuntu 是最流行的 Linux 發行版之一,既適用於伺服器,也適用於臺式電腦。新的 Ubuntu 版本每六個月釋出一次,新的 Ubuntu 長期支援版本每兩年釋出一次,支援期為五年。由於 Ubuntu 廣受歡迎,大多數有關 Linux 的教育內容都反映了 Ubuntu 的特點,而 Ubuntu 支援的廣泛性也是對其有利的重要一點。

Debian 是 Ubuntu 的上游,這意味著它的核心架構決定通常會影響 Ubuntu 的釋出,它使用與 Ubuntu 相同的 .deb 包格式和 apt 包管理器。由於保守的打包選擇和缺乏商業支援,Debian 在生產伺服器上並不流行。不過,許多使用者選擇 Debian 是因為它的可移植性,以及它被用作不同平臺上許多其他 Linux 發行版的基線,包括最流行的 Raspberry Pi 作業系統 Raspbian。

Red Hat Enterprise Linux 或 RHEL 是最流行的商業支援 Linux 發行版。與 Debian 系列不同,它使用 .rpm 軟體包和名為 dnf 的軟體包管理器,以及自己的工具生態系統。由於授權原因,只有在簽訂了商業支援協議的情況下,才會使用 Red Hat。

Rocky Linux 是 Red Hat 的下游,就像 Ubuntu 是 Debian 的下游一樣,與 RHEL 不同的是,它與大多數其他 Linux 發行版一樣可以免費使用,這使它成為採用紅帽工具但可能不使用紅帽商業支援的使用者的熱門選擇。在此之前,一個名為 CentOS 的發行版扮演著與 Rocky Linux 相同的角色,但它的釋出模式正在發生變化。Rocky Linux 的版本與 RHEL 的版本密切相關,兩者之間可以共享大多數文件。

Fedora Linux 是 Red Hat 的上游產品,與 Ubuntu 一樣,用於桌面環境和伺服器。Fedora 是大多數 RHEL 生態系統軟體包以及 Gnome 桌面環境(Ubuntu 和其他系統預設使用 Gnome 桌面環境)的實際開發源頭。

Arch Linux 是另一種流行的以桌面為重點的 Linux 發行版,它既不是 Debian 也不是 Red Hat Linux 系列的成員,但提供了自己獨特的打包格式和工具。與其他發行版不同的是,它不使用任何發行版本--它的軟體包總是最新的。因此,不建議用於生產伺服器,但它提供了出色的文件,對知識淵博的使用者來說非常靈活。

Alpine Linux 是一個最小的 Linux 發行版,預設情況下不提供許多常用工具。從歷史上看,許多 Linux 發行版都是基於這一目標而建立的。Alpine 常用於現代容器化部署(如 Docker),在這種部署中,你的軟體可能需要在虛擬化作業系統中執行,但又需要儘可能減少整體佔用空間。除非試圖製作容器原型,否則一般不會直接使用 Alpine Linux。

以前,不同發行版在初始系統、視窗管理器和其他庫的選擇上存在較大差異,但現在幾乎所有主流 Linux 發行版都已將 systemd 和其他此類工具標準化。

選擇發行版

還有許多其他 Linux 發行版,但大多數其他發行版目前都可以透過這七個發行版來理解。從以上概述可以看出,你選擇 Linux 發行版的大部分標準將歸結為以下幾點:

  • 您對 Debian 衍生系統還是 Red Hat 生態系統有要求
  • 你將主要為雲、桌面或容器進行開發
  • 是需要使用最新的可用軟體包,還是穩定的軟體包

選擇發行版取決於個人喜好,但如果你是在雲中工作,對紅帽生態系統沒有任何生產要求,那麼 Ubuntu 是最受歡迎的預設選擇。您還可以從面向網站的軟體包倉庫中檢視特定發行版的可用軟體包。例如,Ubuntu 22.04 "Jammy Jellyfish "軟體包位於 Ubuntu.com 的 Jammy 部分

軟體包管理

大多數 Linux 發行版在如何建立、發現和安裝第三方軟體包(軟體包源中沒有的軟體包)方面也有很大不同。Red Hat、Fedora 和 Rocky Linux 除了官方軟體包外,一般只使用少數幾個流行的第三方軟體包庫,以保持其權威性和生產性。其中之一就是 企業 Linux 額外軟體包(Extra Packages for Enterprise Linux 或 EPEL)。由於 RHEL 生態系統對商業上支援的軟體包和不支援的軟體包進行了區分,所以許多在 Ubuntu 上開箱即用的常用軟體包需要配置 EPEL 才能安裝到 Red Hat 上。在這種情況和其他許多情況下,哪些軟體包可以從發行版自己的軟體源上游獲得,往往是一個權威性和維護責任的問題。許多第三方軟體包源都廣受信任,只是它們可能不在發行版維護者的職責範圍之內。

Ubuntu 允許個人使用者建立 PPA(即個人軟體包檔案)來維護第三方軟體供他人安裝。不過,同時使用過多的 PPA 可能會導致不相容的問題,因為 Debian 和 Ubuntu 軟體包的版本都有特定的要求,所以 PPA 維護者需要與 Ubuntu 的上游更新緊密配合。Arch Linux 為使用者提交的軟體包提供了一個單一的軟體倉庫,稱為 Arch User Repository 或 AUR,雖然相比之下,他們的方法顯得更加混亂,但如果你使用幾十個第三方軟體包,這種方法在實際操作中會更加方便。

你也可以透過 HomebrewDocker 安裝第三方軟體,從而避免增加系統軟體包管理器的複雜性。雖然"Docker 化"或容器化部署在磁碟使用和安裝開銷方面可能效率不高,這也是 Alpine Linux 需要考慮的地方,但它們可以跨發行版移植,而且不會對你的系統提出任何版本要求。不過,任何未被系統軟體包管理器安裝的軟體包在預設情況下可能無法接收自動更新,這也是需要考慮的另一個問題。

總結

在本教程中,你回顧了為雲端計算選擇 Linux 發行版時的一些最重要的考慮因素。現在,Docker 和其他容器引擎的廣泛使用意味著,選擇發行版對你能夠執行的軟體的影響已不像過去那麼大了。不過,這仍然是影響軟體獲得支援方式的重要因素,也是您在為生產擴充套件基礎架構時需要考慮的重要因素。

要進一步瞭解如何在不同的 Linux 發行版上使用系統軟體包管理器,請參閱《軟體包管理要點》

參考:How to Choose a Linux Distribution | DigitalOcean Tutorial

相關文章