Arch 与其他发行版的比较
本页面尝试比较 Arch Linux 与其他流行的 GNU/Linux 发行版和类 UNIX 操作系统。以下摘要是简要描述,可能有助于人们决定 Arch Linux 是否适合他们的需求。尽管评论和描述可能有用,但第一手经验始终是比较发行版的最佳方式。
有关更完整的比较,请参阅 维基百科:操作系统比较 和 维基百科: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 标志、SLOT 等)在 Arch Linux 中没有任何直接的等效项。其中一些是由于 Arch 主要是一个二进制发行版,但 设计理念 的差异也起着重要作用,Arch 在架构简单性和避免过度工程方面采取了更原则性的立场。
- 与 Arch 不同,Gentoo 提供对 systemd 和 OpenRC 的官方支持。如果对 systemd 感到舒适,Gentoo 用户通常也会对 Arch 的大多数其他方面感到自在。
- 由于 Gentoo 和 Arch 安装都只包含基础系统,因此两者都被认为是高度可定制的,并强调用户选择。
GNU Guix 系统
- GNU Guix 系统 的灵感来自 NixOS,方式类似于 Arch 的灵感来自 CRUX。
- Arch Linux 和 Guix 系统都是滚动发布发行版,在软件包上游发布后不久即可用于发行版。然而,Guix 系统主要是一个基于源码的发行版(尽管预构建的二进制文件存在,并称为“替代品”),而 Arch 主要是一个二进制发行版。
- Arch 使用 pacman 作为软件包管理器,而 Guix 系统使用 guix,它支持其他发行版中不存在的 实验性软件包功能。
- Arch 仅支持 x86_64,而 Guix 系统官方支持 多种架构。
- Arch 使用 systemd 作为 init 系统,而 Guix 系统使用 GNU Shepherd。
- Guix 系统打破了 Unix 的许多传统概念,包括 文件系统层次标准。例如,在传统发行版中分布在不同目录中的许多文件,在 Guix 系统中将位于
/gnu/store/
下的某个位置。 - Arch 有时可能会发布非自由软件(通常是驱动程序),而 Guix 系统仅发布自由软件,并获得 自由软件基金会 的认可 – 尽管存在为 Guix 发布非自由软件的替代仓库 存在。
- Arch 期望用户直接配置已安装的软件包,而 Guix 系统鼓励在 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 是 Canonical Ltd. 商业赞助的流行的基于 Debian 的发行版,而 Arch 是从头开始独立开发的系统。
- 这两个项目具有非常不同的目标,并且面向不同的用户群。Arch 专为希望采用 DIY 方法的用户而设计,而 Ubuntu 提供预配置的系统。Arch 从基础安装开始呈现更简单的设计,依靠用户根据自己的特定需求进行自定义。许多 Arch 用户都从 Ubuntu 开始,最终迁移到 Arch。
- Arch 的开发并不偏向于任何特定的用户界面,超出其社区提供的支持范围。此外,Canonical 的商业性质导致他们做出了一些有争议的决定,例如在 Unity 的Dash菜单中包含广告、开发、推广和集成 Snap 和闭源 Snap Store 以及用户数据收集。Arch 是一个独立的、社区驱动的项目,没有商业议程。
- Ubuntu 每 6 个月在离散版本之间移动,而 Arch 是一个滚动发布系统。
- Arch 提供了一个类似 ports 的软件包构建系统和 Arch 用户仓库,用户可以在其中共享 pacman 软件包管理器的源代码包。Ubuntu 使用更复杂的 apt 和 Snap,并允许通过 个人软件包档案 重新分发二进制软件包。
- 这两个社区在某些方面也有所不同。Arch 社区规模较小,并强烈鼓励为发行版做出贡献。相比之下,Ubuntu 社区相对较大,因此可以容忍更大比例的不积极参与开发、打包或仓库维护的用户。
Linux Mint
- Linux Mint 最初是作为 Ubuntu 衍生版诞生的,后来添加了基于 Debian 的 LMDE(Linux Mint Debian Edition)。另一方面,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 提供的是最小的基础系统安装,而不是完整的桌面环境。因此,对于那些想要更以 GUI 驱动的环境、自动配置或开箱即用的预期功能,同时仍然允许所有发行版上可能的自定义的用户来说,openSUSE 可能更合适。
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 系统的概念。但是,与 GNU/Linux 发行版(如 Arch)不同,BSDs 的内核和用户区程序(如 shell 和核心实用程序,如 ls、cp、cat 和 ps)是在单个源代码仓库中一起开发的。
- BSD 许可证 是宽松的,与 GPL 形成对比,后者规定衍生产品需要在相同的许可证下发布。Arch 在 GPL 下发布。
- 要了解有关 BSD 变体的更多信息,请参阅 维基百科:BSD 操作系统比较。
参见
- DistroWatch - Linux 发行版新闻和评论