Arch 与其他发行版的比较

来自 ArchWiki

本页面尝试比较 Arch Linux 和其他流行的 GNU/Linux 发行版以及类 UNIX 操作系统。以下摘要是简要描述,可能有助于人们决定 Arch Linux 是否适合他们的需求。虽然评论和描述可能有用,但第一手经验始终是比较发行版的最佳方式。

有关更完整的比较,请参阅 Wikipedia:操作系统比较Wikipedia:Linux 发行版比较

在以下所有内容中,仅将 Arch Linux 与其他发行版进行比较。支持 x86_64 以外架构的社区移植版本可以在 基于 Arch 的发行版 中找到。

基于源代码

基于源代码的发行版具有高度可移植性,其优势在于可以为特定的机器架构和使用方案控制和编译整个操作系统和应用程序,但缺点是源代码编译非常耗时。Arch 基础系统和所有软件包仅针对 x86_64 架构编译。

CRUX

  • CRUX 是一个轻量级发行版,专注于 KISS 原则。CRUX 启发 Judd Vinet 创建了 Arch。
  • CRUX 使用 BSD 风格的 init 脚本,而 Arch 使用 systemd
  • 虽然 Arch 使用滚动发布系统,但 CRUX 或多或少每年发布一次。
  • 两者都带有类似 ports 的系统,并且像 *BSD 一样,两者都提供了一个基础环境来构建。
  • Arch 具有 pacman,它可以处理二进制系统软件包管理,并与 Arch 构建系统 无缝协作。CRUX 使用社区贡献的名为 prt-get 的系统,该系统与其自身的 ports 系统相结合,可以处理依赖关系解析,但从源代码构建所有软件包(尽管 CRUX 基础安装是二进制的)。
  • Arch 和 CRUX 官方都仅支持 x86_64 架构。
  • Arch 具有大量的二进制软件包仓库以及 Arch 用户仓库。除了相对适度的社区仓库外,CRUX 还提供了一个更加精简的官方支持的 ports 系统。

LFS

  • LFS(或 Linux From Scratch)仅作为文档存在。本书指导用户获取功能性 GNU/Linux 系统的最小基本软件包集的源代码,以及如何从头开始手动编译、修补和配置它。LFS 非常精简,并提供了构建和自定义基础系统的出色且具有教育意义的过程。
  • LFS 不提供在线仓库;源代码是手动获取、编译并使用 make 安装的。(存在几种手动软件包管理方法,并在 LFS 提示中提到)。
  • Arch 提供这些相同的软件包,加上 systemd、一些额外的工具和强大的 pacman 软件包管理器作为其基础系统,这些都已针对 x86_64 编译。除了最小的 Arch 基础系统外,Arch 社区和开发人员还提供和维护数千个可通过 pacman 安装的二进制软件包,以及用于 Arch 构建系统PKGBUILD 构建脚本。Arch 还包括 makepkg 工具,用于快速构建或自定义软件包,这些软件包可以轻松地通过 pacman 安装。
  • Judd Vinet 从头开始构建了 Arch,然后用 C 语言编写了 pacman。从历史上看,Arch 有时被幽默地简单描述为“带有漂亮软件包管理器的 Linux”。

Gentoo/Funtoo Linux

  • Arch Linux 和 Gentoo Linux 都是滚动发布系统,在上游发布后不久即可向发行版提供软件包。
  • Gentoo 软件包和基础系统直接从源代码根据用户指定的 USE 标志 构建。Arch 提供了一个类似 ports 的系统来从源代码构建软件包,尽管 Arch 基础系统旨在作为预构建的 x86_64 二进制文件安装。这通常使 Arch 构建和更新速度更快,并允许 Gentoo 具有更高的系统可定制性。
  • Arch 仅支持 x86_64,而 Gentoo 官方支持 x86 (i486/i686)、x86_64、PPC/PPC64、SPARC、Alpha、ARM、MIPS、HPPA、S/390 和 Itanium 架构。
  • Gentoo 的官方软件包和系统管理工具往往比 Arch 提供的工具更复杂和“强大”,并且 Gentoo 核心的某些功能(USE 标志SLOTs 等)没有任何直接的 Arch Linux 等效项。其中一些是由于 Arch 主要是一个二进制发行版,但 设计理念 的差异也起着重要作用,Arch 在架构简单性和避免过度工程方面采取了更有原则的立场。
  • 与 Arch 不同,Gentoo 为 systemd 和 OpenRC 提供官方支持。如果对 systemd 感到舒适,Gentoo 用户通常也会对 Arch 的大多数其他方面感到自在。
  • 由于 Gentoo 和 Arch 安装都只包含基础系统,因此两者都被认为是高度可定制的,并强调用户选择。

GNU Guix System

  • GNU Guix System 的灵感来自 NixOS,类似于 Arch 如何受到 CRUX 的启发。
  • Arch Linux 和 Guix System 都是滚动发布发行版,在上游发布后不久即可向发行版提供软件包。然而,Guix System 主要是一个基于源代码的发行版(尽管存在预构建的二进制文件,称为“替代品”),而 Arch 主要是一个二进制发行版。
  • Arch 使用 pacman 作为软件包管理器,而 Guix System 使用 guix,它支持其他发行版中不存在的 实验性软件包功能
  • Arch 仅支持 x86_64,而 Guix System 官方支持 多种架构
  • Arch 使用 systemd 作为 init 系统,而 Guix System 使用 GNU Shepherd
  • Guix System 打破了 Unix 的许多传统概念,包括 文件系统层次标准。例如,在传统发行版中分布在不同目录中的许多文件,在 Guix System 中将位于 /gnu/store/ 下的某个位置。
  • Arch 偶尔可能会发布非自由软件(通常是驱动程序),而 Guix System 仅发布自由软件,并获得 自由软件基金会 的认可——尽管存在为 Guix 发布非自由软件的替代仓库 存在
  • Arch 希望用户直接配置已安装的软件包,而 Guix System 鼓励在 Scheme 中进行全局系统配置,然后 实例化 配置文件。

通用

这些发行版提供了广泛的优势和优势,可以用于大多数操作系统用途。

Debian

  • Debian 是最大的上游 Linux 发行版,拥有更大的社区,并具有稳定版、测试版和非稳定版分支,提供数十万个 软件包。可用的 Arch 二进制软件包数量相对较少。但是,当包括 AUR 时,数量相当。
  • Debian 对自由软件采取更强烈的立场,但仍然在其非自由软件仓库中包含非自由软件。Arch 更加宽松,因此对 GNU 定义的非自由软件包更具包容性。
  • Debian 专注于对其稳定版分支进行严格测试,该分支是“冻结”的,并支持长达 五年。Arch 软件包比 Debian 稳定版更新,更类似于 Debian 测试版和非稳定版分支,并且没有固定的发布时间表。
  • Debian 可用于多种架构,包括 alpha、arm、hppa、i386、x86_64、ia64、m68k、mips、mipsel、powerpc、s390 和 sparc,而 Arch 仅支持 x86_64。
  • Arch 为从外部来源构建自定义的可安装软件包提供了更便捷的支持,并提供类似 ports 的软件包构建系统。Debian 不提供 ports 系统,而是依赖于其大型二进制仓库。
  • Arch 安装系统仅提供最小的基础系统,在系统配置期间透明地公开,而 Debian 的方法(例如使用 apt tasks 安装预选的软件包组)提供了更自动配置的方法以及几种替代安装方法。
  • Arch 通常将软件包库与其头文件打包在一起,而在 Debian 中,头文件必须单独下载。
  • Arch 尽可能少地进行修补,从而避免了上游无法审查的问题,而 Debian 为了更广泛的受众更自由地修补其软件包。

Fedora

  • Fedora Linux 是 Red Hat® Enterprise Linux 的上游社区发行版。Red Hat 是该项目的主要赞助商,但数千名独立开发人员也为 Fedora 做出贡献。软件包和项目在 Fedora 上发布,并通过其自身独特的测试和质量保证流程,这些功能迁移到 CentOS Stream,最终被纳入 Red Hat Enterprise Linux 的版本中,其中一些最终被其他发行版采用。Arch 没有固定的发布版本,也不作为另一个发行版的分支,即使 许多其他发行版 都基于 Arch Linux(例如 Steam Deck 的 SteamOS)。
  • Fedora 软件包使用 RPM 格式和 DNF 软件包管理器。Arch 使用 pacman 来管理其软件包。两个项目的许多软件包,尤其是桌面环境,都被描述为“vanilla”,并且没有自定义。
  • Fedora 由于其对自由软件的奉献精神,拒绝在官方仓库中包含非自由软件,但第三方仓库可用于此类软件包。Arch 对非自由软件的态度更加宽松,将判断权留给用户。
  • Fedora 使用图形化的 Anaconda 安装程序,并提供许多安装镜像,包括“everything”专家选项,该选项有助于从基础系统安装到您选择的全功能桌面环境。Fedora “spins” 还提供了特定桌面环境的替代组合,每种组合都带有适量的默认软件包。另一方面,Arch 旨在从最小的基础系统命令行组装,因此提供了旨在简化该过程的简单脚本。
  • Fedora 具有计划的约 6 个月发布周期,但官方支持使用 DNF system-upgrade 插件进行离散版本升级。Arch 是一个滚动发布系统。
  • Arch 具有 ports 系统,而 Fedora 没有。
  • Arch 和 Fedora 都面向有经验的用户和开发人员。两者都强烈鼓励其用户为项目开发做出贡献。
  • Fedora 因集成 SELinux、GCJ 编译的软件包(以消除对 Oracle JRE 的需求)以及多产的上游贡献而赢得了社区的广泛认可;与任何其他项目相比,Red Hat 以及 Fedora 开发人员(通过扩展)贡献了最高比例的 Linux 内核代码。
  • Arch Linux 提供了被广泛认为是最全面和最完整的发行版 Wiki。Fedora Wiki 在“wiki”一词的原始意义上使用,或者作为开发人员、测试人员和用户之间快速交换信息的一种方式。它不打算像 Arch 那样成为最终用户的知识库。Fedora 的 wiki 类似于问题跟踪器或企业 wiki。

Slackware

  • Slackware 使用 BSD 风格的 init 脚本,而 Arch 使用 systemd
  • Arch 在 pacman 中提供了一个软件包管理系统,与 Slackware 的标准工具不同,它提供自动依赖关系解析,并允许更自动化的系统升级。Slackware 用户通常更喜欢他们手动依赖关系解析的方法,理由是它赋予他们系统控制级别,以及 Slackware 提供的出色的预安装库和依赖项。
  • Arch 是一个滚动发布系统。Slackware 在其发布周期中被认为更保守,更喜欢经过验证的稳定软件包。Arch 在这方面更加前沿
  • Arch Linux 在其官方仓库中提供了数千个二进制软件包,而 Slackware 官方仓库则更为适度。
  • Arch 提供了 Arch 构建系统,一个真正的类似 ports 的系统,以及 AUR,这是一个由用户贡献的非常大的 PKGBUILD 集合。Slackware 在 slackbuilds.org 上提供了一个类似但更精简的系统,这是一个半官方的 Slackbuilds 仓库,它类似于 Arch PKGBUILD。Slackware 用户通常会对 Arch 的大多数方面感到非常舒适。

对新手友好

有时称为“新手发行版”,对新手友好的发行版有很多相似之处,尽管 Arch 与它们截然不同。如果您想通过从一个小基础构建来了解 GNU/Linux,那么 Arch 可能是更好的选择,因为与比较而言,Arch 的安装包数量很少。下面描述了发行版之间的具体差异。

Ubuntu

  • Ubuntu 是一个流行的基于 Debian 的发行版,由 Canonical Ltd. 商业赞助,而 Arch 是一个从头开始独立开发的系统。
  • 这两个项目具有非常不同的目标,并且面向不同的用户群。Arch 专为希望采用自己动手方式的用户而设计,而 Ubuntu 提供了一个预配置的系统。Arch 从基础安装开始呈现更简单的设计,依靠用户根据自己的特定需求进行自定义。许多 Arch 用户都是从 Ubuntu 开始,最终迁移到 Arch 的。
  • Arch 的开发没有偏向任何特定的用户界面,超出其社区提供的支持范围。此外,Canonical 的商业性质导致他们做出了一些有争议的决定,例如在 Unity 的 Dash 菜单中包含广告,开发、推广和集成 Snap 和闭源 Snap Store,以及用户数据收集。Arch 是一个独立的、社区驱动的项目,没有商业议程。
  • Ubuntu 每 6 个月在离散版本之间移动,而 Arch 是一个滚动发布系统。
  • Arch 提供了一个类似 ports 的软件包构建系统和 Arch 用户仓库,用户可以在其中共享 pacman 软件包管理器的源代码包。Ubuntu 使用更复杂的 aptSnap,并允许通过 个人软件包存档 重新分发二进制软件包。
  • 这两个社区在某些方面也有所不同。Arch 社区规模小得多,并强烈鼓励为发行版做出贡献。相比之下,Ubuntu 社区相对较大,因此可以容忍更大比例的不积极参与开发、打包或仓库维护的用户。

Linux Mint

  • Linux Mint 诞生于 Ubuntu 衍生产品,后来添加了 LMDE(Linux Mint Debian Edition),后者基于 Debian。另一方面,Arch 是一个独立的发行版,它依赖于自己的 构建系统仓库
  • Mint 包含几个用于更轻松维护的图形工具,称为 MintTools。Arch 仅提供简单的命令行工具,如 pacman,并将系统管理留给用户组织。
  • 新版本的 Mint 每六个月发布一次,大约在 Ubuntu 之后一个月。每个版本都基于最新的 Ubuntu LTS,并支持五年。Linux Mint Debian Edition (LMDE) 基于 Debian 稳定版,仅接收 Mint 软件包和安全更新。Arch 则是一个完整的滚动发布发行版。

openSUSE

openSUSE 诞生于最初的 SUSE Linux,并由 SUSE(SUSE Enterprise Linux 的制造商)赞助。SUSE Enterprise Linux Desktop (SLED) 基于 openSUSE Tumbleweed,并与 openSUSE Leap 共享一个通用代码库

  • OpenSUSE 使用 Zypp 软件包管理器(命令行上的 zypper)、RPM 软件包格式及其备受推崇的 YaST2 GUI 驱动的配置工具。Arch 使用 pacman 来管理 tar.zstd 软件包,并且不提供图形配置工具。
  • openSUSE 提供 2 个不同的版本
    • Leap 是 openSUSE 的长期支持版本,具有离散发布版本。
    • Tumbleweed 是 openSUSE 的滚动发布版本。
  • 相比之下,Arch 严格来说是滚动发布模型,不提供离散发布版本。Arch 提供最小的基础系统安装,而不是完整的桌面环境。因此,openSUSE 可能更适合那些想要更受 GUI 驱动的环境、自动配置或开箱即用的预期功能,同时仍然允许所有发行版上可能的自定义的用户。

Mandriva/Mageia

Mandriva Linux(以前称为 Mandrake Linux)创建于 1998 年,目标是让每个人都能轻松使用 GNU/Linux;它是基于 RPM 的,并使用 urpmi 软件包管理器。Mageia 是 Mandriva 前雇员创建的 Mandriva 分支,它反对其父发行版的商业立场,是一个非营利性和社区驱动的项目。Arch 采用了比 Mandriva 或 Mageia 更简单的方法,它是基于文本的,并且依赖于更多手动配置,并且面向中级到高级用户。

BSDs

  • BSDs 具有共同的起源,直接源自加州大学伯克利分校为生产可自由再分发、免费的 UNIX 系统所做的工作。它们不是 GNU/Linux 发行版,而是类 UNIX 操作系统,并且源自最初的 AT&T UNIX 代码。
  • Arch 和 BSDs 共享紧密集成的基础系统和 ports 系统的概念。但是,与 Arch 等 GNU/Linux 发行版不同,BSDs 的内核和用户空间程序(例如 shell 和核心实用程序,如 lscpcatps)是在单个源代码仓库中一起开发的。
  • BSD 许可证 是宽松的,与 GPL 形成对比,后者规定衍生产品需要以相同的许可证发布。Arch 是在 GPL 下发布的。
  • 要了解有关 BSD 变体的更多信息,请参阅 Wikipedia:BSD 操作系统比较

参见