Arch 與其他發行版的比較 - Arch Linux 中文维基

跳至內容

# Arch 與其他發行版的比較

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Arch compared to other distributions，最近一次同步於 2017-03-06，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- Arch Linux
- 基於 Arch 的發行版
- Pacman/Rosetta

本文在 Arch Linux 、其他流行的 GNU/Linux 發行版和類 UNIX 作業系統之間做了一些比較，以幫助用戶判斷 Arch Linux 是否能符合他們的需要。雖然對此進行一些描述有助於用戶理解這些作業系統之間的不同點，但是比較 Arch Linux 和其他作業系統的最好辦法還是由用戶自行安裝它們並進行親身體驗。

英文維基百科的《作業系統比較》和《Linux 發行版比較》這兩個頁面包含了更詳細的比較信息。

在接下來的部分中，只有 Arch Linux 與其他發行版做了比較。社區適配的支持 x86_64 以外的架構的版本在基於 Arch 的發行版中列出。

## 與基於源碼的發行版對比

基於源碼的發行版具有高度可移植性，非常容易被移植到不同架構的系統上。它們可以根據特定計算機的體系架構和使用情況，控制和編譯整個系統和所有軟體包，其優化是最佳的。但缺點是如果計算機系統的配置性能較低，安裝系統和軟體包的源碼編譯會極為費時費力。Arch Linux 的基礎軟體包和其他所有軟體包僅為 x86-64 架構進行編譯。

### CRUX

- CRUX 是讓 Judd Vinet 有了創建 Arch 的靈感的、專注於 KISS 法則的一種輕量級發行版。
- CRUX 使用 BSD 風格的啟動腳本，而 Arch Linux 使用 systemd 。
- 儘管 Arch Linux 使用滾動升級機制，CRUX 也差不多每年都會有發行版。
- 兩者都提供了類 Ports 系統，並且和 *BSD 一樣都提供了一個基礎系統以供用戶在其之上進行構建。
- Arch Linux 使用 pacman 來進行二進制包管理，同時還使用 Arch 構建系統。CRUX 使用一個叫 prt-get 的社區開發軟體和它自己的 Ports 系統來處理依賴關係解析。儘管如此，CRUX 上所有的軟體包都需要從原始碼進行編譯，即使 CRUX 的基礎系統是基於二進制包的。
- Arch Linux 和 CRUX 官方都僅支持 x86_64 架構。
- Arch Linux 的軟體倉庫提供大量編譯好的二進制軟體包。除此之外，還擁有 Arch 用戶軟體倉庫（AUR）。CRUX 的軟體倉庫則比較遜色，並且其 Ports 系統也缺乏官方支持。

### LFS

- LFS（Linux From Scratch）只是以文檔形式存在，它提供的文檔指導用戶如何從零開始構建一個完全個性化的 GNU/Linux 作業系統：從如何獲取構建一個基礎作業系統所需的原始碼，到如何手動編譯，如何打補丁，如何對系統進行配置。總之，LFS 提供了一個構建和定製基礎系統的良好教程。
- LFS 不提供在線軟體倉庫。它必須由用戶手動獲取原始碼，然後用 make 編譯安裝它們（這需要一些軟體包管理方法，而這些方法在 LFS Hints 裡面提到過）。
- Arch Linux 基礎系統除了提供和 LFS 一樣的軟體包，還包含 systemd、pacman 等一些額外的工具，並且這些軟體都已經為 x86_64 架構編譯過了。Arch 社區和開發者提供了數以千計的軟體包，這些軟體包可以通過 pacman 或者 PKGBUILD 腳本進行安裝（PKGBUILD 腳本需要和 Arch Build System 一起使用）。除此之外，Arch Linux 還包含了一個名叫 makepkg 的工具來生成便於 pacman 使用的軟體包。
- Judd Vinet 從頭開始構建了 Arch，然後用 C 語言編寫開發了 pacman。所以，Arch Linux 有時候會被幽默的描述為「有一個很好的軟體包管理器的 Linux」。

### Gentoo Linux

- Arch Linux 和 Gentoo Linux 都是滾動升級的發行版，所以在上游（原始開發者）軟體包發布不久，兩者就會有軟體包可以用。
- Gentoo Linux 的基礎系統和軟體包都是根據用戶指定的 USE 標識直接從原始碼構建。Gentoo Linux 提供了一個類 Ports 系統（ Ports 是 BSD 系統上的一個系統工具）來從原始碼編譯軟體包，而 Arch Linux 基礎系統被設計為「直接由預構建好的 x86_64 二進制軟體包組成」。一般來說，Arch Linux 更易於構建和升級，而 Gentoo Linux 更易於進行系統化的定製。
- Arch Linux 只支持 x86_64 架構，而 Gentoo Linux 對 x86（i486/i686）、x86_64、PPC/PPC64、SPARC、Alpha、ARM、MIPS、HPPA、S/390、Itanium、M68K 以及 RISC-V 架構均提供官方支持。
- Gentoo Linux 的官方包管理工具比 Arch Linux 的更加複雜和「強大」，並且 Gentoo Linux 的某些核心功能特性（比如 USE 標記、SLOTs 等等）在 Arch Linux 中並沒有相對應的替代品。究其原因，首先是因為 Arch Linux 主要是一個二進制發行版，其次是因為 Gentoo Linux 和 Arch Linux 在設計理念上有些許差別，Arch Linux 在原則上更偏向於架構的簡潔性和避免過度設計。
- 因為 Gentoo Linux 和 Arch Linux 的安裝都只包含一個基本系統，所以兩者都被認為是需要高度定製化的系統。一般來說，Gentoo Linux 用戶如果習慣於 systemd 的話，對 Arch Linux 的大多數方面都會比較滿意。

### GNU Guix System

- GNU Guix System 受到 NixOS 的啟發，類似於 Arch Linux 受到 CRUX 的啟發。
- Arch Linux 和 Guix System 都是滾動發布發行版，使軟體包在上游發布後短時間內可供發行版使用。然而，Guix 系統主要是一個基於原始碼的發行版（儘管存在預構建的二進制文件並稱為「替代品」），而 Arch Linux 主要是一個二進制發行版。
- Arch Linux 使用 pacman 作為包管理器，而 Guix System 使用 GNU Guix，它支持其他發行版中不存在的實驗性打包功能。
- Arch Linux 只支持 x86_64，而 Guix System 正式支持多種架構。
- Arch Linux 使用 systemd 作為 init 系統，而 Guix System 使用 GNU Shepherd。
- Guix System 打破了許多傳統的 Unix 概念，包括文件系統層次結構標準。例如，在傳統發行版中分布在不同的目錄中的許多文件，在Guix系統中將位於`/gnu/store/`。
- Arch Linux 偶爾會發布非自由軟體（通常是驅動程序），而 Guix System 只發布自由軟體，並得到自由軟體基金會的認可——儘管存在為 Guix 提供非自由軟體的替代存儲庫。
- Arch Linux 希望用戶直接配置已安裝的軟體包，而 Guix System 鼓勵在 Scheme 中進行全局系統配置，進而實例化配置文件。

## 與通用發行版的對比

這些發行版的優點是受眾更加廣泛，可以滿足絕大部分用戶對計算機作業系統的需求。

### Debian GNU/Linux

- Debian 是上游最大的發行版，其社區規模更大。它提供穩定（Stable）、測試（Testing）和不穩定（Unstable）三個版本分支，包含超過51000個二進制包。而 Arch Linux 的軟體倉庫相對較小，但是如果算上 AUR 倉庫，那麼 Arch Linux 支持的軟體數量也差不多。
- Debian 對自由軟體更熱情，但也提供非自由軟體倉庫。Arch Linux 對 GNU 定義的非自由（「non-free」）軟體更顯寬容。
- Debian 對穩定分支的測試更加詳細徹底，軟體基本是上凍結的，並提供五年官方社區支持。Arch Linux 提供的的軟體包會比 Debian Stable 中的軟體包更新，但會與 unstable 和 testing 分支裡的差不多，而且沒有固定發布周期，均以滾動形式發布。
- Debian 支持許多架構，包括 amd64,arm64,armel,armhf,i386,ppc64el,riscv64與 s390x等。而 Arch Linux 僅對 x86_64 架構提供官方支持，其對 arm 架構的支持則移植自社區項目（例如對 Raspberry Pi 的支持）。
- Arch Linux 對從源碼創建軟體包提供更好的支持，有一個類 ports 系統。而 Debian 不提供類 Ports 系統，而是依靠它巨大的二進制軟體包倉庫。
- Arch Linux 安裝環境只提供最小的基本系統，然後通過編輯文本文件來配置系統。而 Debian 的配置方式則更加自動化，並且還提供多種安裝方式，例如使用 apt 任務來安裝預先選擇的軟體包組。
- 在啟動腳本上，Debian（ 8.0 或更高版本）和 Arch Linux 均使用 Systemd，因為其總體性能是相當優異的。
- Arch Linux 一般將 lib 軟體庫與其頭文件一同打包在一起，而在 Debian 中，頭文件必須單獨下載，並將 lib 軟體庫與頭文件分別打包。
- Arch Linux 將補丁保持在最低限度，只會在迫不得已的時候才會去打補丁，以避免出現上游無法審閱的問題。而 Debian 的用戶眾多，所以會經常對軟體包打補丁。

### Fedora

- Fedora Linux 是 Red Hat® Enterprise Linux （紅帽企業版 Linux，RHEL）的上游社區發行版，也是一種技術先導發行版，對新技術的使用非常激進。紅帽（Red Hat）公司是該項目的主要贊助商，但成千上萬的獨立開發人員也為 Fedora 做出了貢獻。軟體包和項目在 Fedora 上發布，通過其自己獨特的測試和質量保證流程，這些功能遷移到 CentOS Stream，並最終被合併引入到 Red Hat Enterprise Linux 中，其中一些最終被其他發行版採用。Arch Linux 沒有固定版本，也不作為另一個發行版的分支，即使許多其他發行版基於 Arch Linux（例如 Steam Deck 的 SteamOS）。
- Fedora 使用 RPM 格式軟體包、 DNF 軟體包管理器。而 Arch Linux 使用 pacman 管理軟體包。這兩個項目的許多軟體包，特別是桌面環境，都被描述為「原版」，並且沒有自定義。
- Fedora 堅持開源理念，拒絕在官方倉庫中包含非自由軟體包，默認不提供有專利限制的軟體。例如 MP3 支持（從 Fedora 25 開始已重新支持 MP3，而且一些第三方源通常也會提供這些內容）。而 Arch Linux 對於 MP3 及非自由軟體則更加寬鬆，尊重用戶的知情權和使用權。
- Fedora 提供許多不同的安裝方式，包括圖形化 Anaconda 安裝程序、最小化安裝和專家安裝選項，有助於安裝基本系統或是直到安裝您選擇的成熟桌面環境。Fedora "spins" 還提供許多不同的圖形化桌面環境以供用戶選擇（這些桌面環境都會附帶一些默認的軟體包）。Arch Linux 被設計為僅提供一些簡單腳本來進行最小化系統安裝，並且同樣可以根據用戶個人需要安裝使用不同的圖形化桌面環境。
- Fedora 發行周期比較固定，但官方支持通過 dnf-plugin-system-upgrade（適合大部分的版本）或 rpm-ostree（適合 Fedora Atomic Host）工具進行跨版本升級。而 Arch Linux 是通過滾動升級系統。
- Arch Linux 有 ports 系統，而 Fedora 有 Fedora Copr（一個類 AUR 構建系統）。
- Arch Linux 和 Fedora 都面向有經驗的用戶和開發人員，兩者都倡導用戶積極為項目開發做出貢獻。
- Fedora 在 SELinux 整合，GCJ 編譯包（GCJ 的目的是解除對 Oracle JRE 的依賴）等方面是走在各發行版的前列的，並且會積極為上游開發做貢獻。和其他項目相比，紅帽公司和 Fedora 開發人員貢獻的 Linux 內核代碼最多。
- ArchWiki 被認為是各發行版的Wiki中內容最豐富和最易用的。而 Fedora wiki 僅是開發者、測試者和用戶間交流信息的平台，並不是和 ArchWiki 一樣為最終用戶準備。其實它更像一個問題追蹤和合作開發的 wiki。

### Slackware

- Slackware 使用 BSD 風格的 init 腳本，而 Arch Linux 使用 systemd。
- Arch Linux 有一個強大完整的軟體包管理系統 pacman。與 Slackware 的標準工具不同，它可以自己處理依賴關係並提供更加自動化的系統升級方式。Slackware 的用戶會更喜歡手動處理依賴關係，以儘可能控制自己的系統，而 Slackware 本身也對預編譯的庫和依賴提供傑出的支持。
- Arch Linux 是一個滾動升級的系統，而 Slackware 的系統版本和軟體包的發布則更為保守，它會更喜歡提供經過驗證的穩定軟體包。在這個方面，Arch Linux 更為「前衛」。
- Arch Linux 官方軟體倉庫提供成千上萬的二進制軟體包，而 Slackware 官方支持的軟體包就比較少了。
- Arch Linux 提供 Arch Build System（一個類 Ports 系統）和 AUR（由用戶貢獻的數以萬計的 PKGBUILD 的集合）。Slackware 提供一個類似的系統 slackbuilds.org，它是一個半官方支持的 Slackbuilds（和 PKGBUILD 相似）倉庫。Slackware 用戶一般會對 Arch Linux 的大多數方面非常滿意。

## 與新手友好發行版對比

「新手友好版」有時也被叫做「新手發行版」。這些對新手友好的發行版之間有許多相同之處，而 Arch Linux 和它們其中的任何一個發行版都不同。如果您想通過構建極簡系統的方式來學習 GNU/Linux ，Arch Linux 或許是一個好選擇。因為相比一些「新手發行版」，Arch Linux 只需安裝很少的軟體包。一些不同的「新手發行版」之間的特點如下所述：

### Ubuntu

- Ubuntu 是一個非常流行的基於 Debian 的發行版，由 Canonical 公司提供商業支持。而 Arch Linux 是由志願者從頭開始獨立構建開發而成的。
- Ubuntu 和 Arch Linux 的目標不同，並且面向的用戶群體也不一樣。Arch Linux 為那些渴望自己動手的用戶設計，而 Ubuntu 則提供圖形化安裝程序自動配置好了的系統，對新手用戶來說更「友好」。Arch Linux 從一開始就設計了一個最小化的基礎系統，非常依賴有一定知識基礎的用戶按自己的特定需求進行個性化定製。一般來說，開發者和動手能力強的用戶更喜歡 Arch Linux 。不過有許多 Arch Linux用戶是從 Ubuntu 開始學習，掌握一定的技巧後最終轉向使用 Arch Linux 。
- Arch Linux 開發不偏向於任何超出其社區提供支持的特定用戶界面。此外，Canonical 公司的商業性質導致他們做出了一些有爭議的決定，例如在 Unity 的 Dash 菜單中包含廣告和收集用戶數據。而 Arch Linux 是一個獨立的、由社區驅動的項目，沒有商業議程。
- Ubuntu 開發和推廣的重心似乎轉移到了觸控螢幕設備上，而 Arch Linux 的開發依然堅持以用戶為中心，鼓勵社區合作開發客制化的解決方案。
- Ubuntu 通常每 6 個月發布新版本，而 Arch Linux 通過滾動升級系統。
- Arch Linux 提供類 Ports 的軟體包構建系統和 Arch User Repository，用戶可以分享原始碼編譯腳本，然後用 Pacman 安裝管理。Ubuntu 則使用更複雜的 apt，可以通過 Personal Package Archives重新分發二進制軟體包。
- 這兩個發行版的社區在某些方面也有所不同。Arch 社區要小的多，更傾向於鼓勵用戶為 Arch Linux 奉獻一份力量。相比之下，Ubuntu 社區更加龐大，並能容忍其中並沒有積極為開發、打包和維護做貢獻的大多數用戶。

### Linux Mint

- Linux Mint 最初是一個 Ubuntu 的衍生版本。後來又衍生出 LMDE（ Linux Mint Debian Edition ），LMDE 是一個基於 Debian 的版本。而 Arch Linux 是一個獨立的發行版，它依賴於自己的構建系統和官方倉庫。
- 為了方便系統維護，Linux Mint 包含了一些圖形化工具，它們叫做 MintTools（Mint 工具），而 Arch Linux 僅提供簡單的命令行工具，例如 Pacman，因此 Arch Linux 的系統管理工作需要由用戶自行組織安排。
- Linux Mint 主要以 Cinnamon 、 MATE 與 Xfce4 作為它的圖形界面，不過它也可以由用戶自行安裝選擇 KDE 。Linux Mint 同時支持 Plus codecs、Flash、DVD playback 和 MP3，這其中有一些是有專利限制的私有軟體。
- Linux Mint 半年發布一次新版本。也就是在新版本 Ubuntu 發布一個月之後。Linux Mint 的每一個版本都基於最新的 Ubuntu LTS（長期支持版），並且提供五年技術支援。 Mint 的 Debian 版本 (LMDE) 基於 Debian Stable分支。而且只接收來自 Mint 的軟體包更新和安全更新。與之相反，Arch Linux 則完全是一個滾動更新的發行版。

### openSUSE

openSUSE 誕生於最初的 SUSE Linux，由 SUSE（SUSE Enterprise Linux 的製造商）贊助支持。SUSE Linux Enterprise Desktop （SLED） 基於 openSUSE Tumbleweed，與 openSUSE Leap 共享一個通用代碼庫。

- OpenSUSE 使用 Zypp 軟體包管理器（終端命令為 zypper）、RPM 格式軟體包以及備受推崇的 YaST2 圖形化配置工具。Arch Linux 使用 Pacman 來管理 tar.zstd 包，沒有提供此類圖形配置工具。一般 openSUSE 更適合經驗較少或需要使用圖形界面自動完成配置的用戶。

- openSUSE 提供 2 個不同的版本：
  - Leap 是 openSUSE 的長期支持版本，具有離散版本。Leap 版本一般是每年發布一個版本，軟體包會比 Arch Linux 更舊。
  - Tumbleweed 是 openSUSE 的滾動發布版本。Tumbleweed 版本是滾動更新的，軟體包版本的新舊和 Arch Linux 差不多。

- openSUSE 默認不提供有專利限制的軟體，比如 MP3 支持。您需要添加第三方源來取得這些內容。而 Arch Linux 對於 MP3 及非自由軟體更加寬鬆，更傾向於將決定權交給用戶。
- 相比之下，Arch Linux 嚴格來說是一個滾動發布模型，不提供離散發布版本。Arch Linux 默認不是完整的桌面環境，只提供最小的基本系統安裝。因此，openSUSE 可能更適合那些想要圖形環境、自動配置或開箱即用的功能，同時仍然允許在所有發行版上進行自定義的用戶。

## 與BSD系列作業系統的對比

- BSD 系列作業系統都起源於加利福尼亞大學伯克利分校所做的工作，它們致力於提供一個可以自由再分發、免費的 UNIX 系統。它們不是 GNU/Linux 發行版，而是以原始的 AT&T UNIX 系統的代碼為基礎演進的類 UNIX 作業系統。
- Arch Linux 和 BSD 都提供緊密集成的基本系統和 Ports 軟體包管理系統。但與 GNU/Linux 系統（比如 Arch Linux）不同，BSD 作業系統的內核和用戶空間的程序，如 shell 和常用工具（像 ls、cp、cat 和 ps）是集中在單一的原始碼倉庫中一起開發的。
- 與 GPL 許可證相反，BSD 許可證比較寬鬆，GPL 許可證規定衍生品需要在同一許可證下發布。而 Arch Linux 是在 GPL 許可證下發布的。
- 要獲得 BSD 變體的更多信息，請參閱 Wikipedia:Comparison of BSD operating systems。

## 參閱

- DistroWatch.com- Linux 發行版新聞和評論

分類：​

- 關於 Arch

Arch 與其他發行版的比較
新增話題