Arch Linux
2013-03-03 10:31:51

Arch Linux 是一个独立的开发的采用滚动升级模式的通用i686/x86-64 GNU/Linux 发行版,灵活适用于任何角色。它的开发注重于设计简洁、结构精简、代码优雅。Arch 刚安装后只提供了一个最基本的系统,可以让用户按照自己的喜好,通过仅仅安装自己需要的软件来配置自己的理想的环境。官方没有提供图形界面配置工具,大多数系统配置需要通过从命令行编辑简单的文本文件来配置。基于滚动升级模式,Arch 尽全力保证它的软件是最新的稳定版本。



Arch Linux, a lightweight and flexible Linux® distribution that tries to Keep It Simple.

Currently official packages optimized for the i686 and x86-64 architectures. Complement our official package sets with a  community-operated package repository that grows in size and quality each and every day.

Arch Linux是由二进制软件包组成的,这些软件包会针对i686及x86-64优化以配合目前的硬件。类似Ports/ebuild也在Arch Linux上发展,也就是“Arch Build System”。

该项目注力于简洁主义(对开发者而言),其贡献在于对发行版的组件提供具有良好注释的配置文件,而非带有图形界面的配置工具。这也为其赢得适合“不惧怕命令行的中高级Linux用户”的发行版称号。针对特定处理器而优化过的,能够更好地利用CPU周期以提高性能。相比Debian/Ubuntu、SUSE、RedHat/Fedora等其他发行版,Archlinux属于轻量级选手,其简单的设计让它容易被轻松扩展和配置成为任何想要的系统类型。

特有的包管理系统
通过二进制包管理系统pacman,仅需一个命令就能完成安装、升级等多个操作。同时也附带一个类似ports的包构建系统ABS(Arch Build System)。

滚动更新
与Gentoo类似,不同于其他大部分主流Linux发布版比如Fedora和Ubuntu。ArchLinux并没有跨版本升级的概念,通过更新,任何时期的ArchLinux都可以滚动更新到最新版。

ArchLinux哲学
轻便灵活,符合KISS原则。
采用BSD风格的启动脚本,集中管理,易懂易改。
精简的打包方式,删去部分说明,但保留了man page,从而使包装后的二进制包比一般的Linux小(例如:安装基础包和X视窗,仅需约100MB)。
软件初次安装后,仅为默认配置。可能需要包手册,才能了解后续配置。

缺点
安装过程简陋,缺乏智能直观的错误处理,需要用户有一定的Linux环境常识才能正确安装使用。
仅对I686、X86_64 架构优化,对于其它CPU架构支持匮乏。
包管理系统pacman在升级过程缺乏对系统核心组件的回溯保护,如升级的Kernel有问题,即导致系统无法启动。
系统软件缺乏严谨的测试管理机制,稳定性、可靠性不如Redhat、Debian等发行版,难以在企业用户中推广。

与其他发行版的比较

在此对 Arch Linux 和其他流行的 GNU/Linux 发行版、类 UNIX 操作系统之间做了一些比较,以帮助用户判断 Arch Linux 是否能符合他们的需要。虽然对此进行一些描述有助于用户理解这些操作系统之间的不同点,但是比较 Arch Linux 和其他发行版的最好办法还是安装它们并进行亲身体验。

英文维基百科的《操作系统比较》和《Linux发行版比较》这两个页面包含了更详细的比较信息。在接下来的部分中,只有Arch Linux与其他发行版做了比较。社区适配的支持x86_64以外的架构的版本在Arch-based distributions中列出。

基于源码的发行版

基于源码的发行版非常容易移植,它们的优点是可以根据机器架构和使用情况最优地控制和编译整个系统和所有软件,而劣势是要在源码编译上消耗大量时间。Arch Linux 的基础包和其他所有软件包都只为 x86-64 架构编译。

CRUX
CRUX 是让Judd Vinet有了创建Arch的灵感的、专注于KISS法则的轻量级发行版。
CRUX使用了BSD风格的启动脚本,而Arch使用了systemd。
尽管Arch使用了滚动式升级,CRUX差不多每年都有发行版。
二者都提供了类ports系统,并且和*BSD一样都提供了一个基础系统以供用户在其之上进行构建。
ARCH使用pacman来进行二进制包管理,同时还使用Arch Build System。CRUX使用一个叫“prt-get”的社区开发软件和它自己的ports系统来处理依赖关系解析。尽管如此,CRUX上所有的软件包都需要从源代码进行编译,虽然CRUX的基础系统是基于二进制包的。
ARCH 和 CRUX 官方都只支持 x86_64 架构。
ARCH的软件仓库提供大量编译好的二进制软件包,除此之外,还拥有Arch User Repository。CRUX的软件仓库比较逊色并且其ports系统也缺乏官方支持。

LFS
LFS(Linux From Scratch)只以文档形式存在,提供的文档指导用户如何从零开始构建一个完全个性化的操作系统:从如何获取构建一个基础操作系统所需的源代码,到如何编译,如何打补丁,如何对系统进行配置。总之,LFS 提供一个构建和定制基础系统的良好教程。
LFS 不提供在线软件仓库;必须手动获取源代码,然后用 make 编译安装它们。
Arch 基础系统除了提供和 LFS 一样的软件包,还包含 systemd、pacman 等一些额外的工具,并且这些软件都已经为 x86_64 架构编译过了。Arch 社区和开发者提供了数以千计的软件包,这些软件包可以通过 pacman 或者 PKGBUILD 脚本进行安装(PKGBUILD 脚本需要和 Arch Build System 一起使用)。除此之外,Arch 还包含了一个名叫 makepkg 的工具来生成便于 pacman 使用的软件包。
Judd Vinet 从零开始构建了 Arch,然后使用 C 开发了 Pacman。所以,Arch 有些时候被幽默的描述为“外带一个优秀包管理器的 Linux”。

Gentoo/Funtoo Linux
Arch Linux 和 Gentoo Linux 都是滚动升级的发行版,所以在上游软件发布很短时间后,其上就会有软件包可用。
Gentoo 的基础系统和软件包都是根据用户指定的 USE 标识直接从源代码构建。Gentoo 提供了一个类 ports 系统( Ports 是 BSD 上的一个系统工具)来从源代码编译软件包,而 Arch 基础系统被设计为“直接由预构建好的 x86_64 二进制软件包组成”。一般来说,Arch 更易于构建和升级,而 Gentoo 更易于进行系统化的定制。
Arch 只支持 x86_64 架构,Gentoo 对 x86(i486/i686)、x86_64、PPC/PPC64、SPARC、Alpha、ARM、MIPS、HPPA、S/390、Itanium、M68K 以及 RISC-V 架构提供官方支持。
Gentoo 的官方包管理工具比 Arch Linux 的更复杂和强大,而且一些在 Gentoo 中处于核心位置的特性(比如 USE 标记、SLOTs 等等)在 Arch 中并没有相对应的功能。究其原因,一是因为 Arch Linux 主要是一个二进制发行版,第二是因为 Gentoo 和 Arch 在设计哲学上有些差别。Arch 在原则上更偏向于架构的简洁性和避免过度设计。
因为 Gentoo 和 Arch 的安装包都只包含基本系统,所以它们两者都被认为是需要高度定制化的系统。一般来说,Gentoo 用户如果习惯于 systemd 的话,对Arch的大多数方面都会感到满意。
    

通用发行版

这些发行版提供长处和优点更为广泛,可以满足绝大部分对操作系统的需求。

Debian GNU/Linux
Debian 是上游最大的发行版,其社区规模更大,提供稳定、测试和不稳定分支,包含超过51000个二进制包。Arch 的软件仓库相对较小,但是如果包含AUR,那么支持的软件数量也差不多。
Debian 对自由软件更热情,但是也提供非自由软件仓库。Arch 对 GNU 定义的非自由(“non-free”)软件更显宽容。
Debian 对稳定分支的测试更详细彻底,软件基本冻结并提供五年支持。Arch 提供的的软件包比 Debian Stable 中的软件包新,与 unstable 和 testing 里的差不多,而且没有固定发布周期,滚动发布。
Debian 支持许多架构,包括 alpha、arm、hppa、i386、x86_64、ia64、m68k、mips、mipsel、powerpc、s390和sparc。而 Arch 仅对 x86_64 提供官方支持,其对 arm 的支持移植自社区项目(例如对Raspberry Pi的支持)。
Arch 对从源码创建软件包提供更好的支持,有一个类 ports 系统。Debian 不提供类 ports 系统,而是依靠它巨大的软件仓库。
Arch 安装环境只提供最小的基本系统,然后通过编辑文本文件来配置系统。而 Debian 的配置方式更为自动化并且还提供多种安装方式。
在启动脚本上,Debian(8.0或更高版本)和 Arch 均使用 systemd,因为其总体性能优。
Arch 一般将 lib 软件库与其头文件一同打包在一起,而 Debian 则将这两部分分别放到不同的 package 中。
Arch 只在迫不得已时才打补丁,以避免出现上游无法审阅的问题。Debian 使用者众多,所以经常对软件包打补丁。

Fedora
Fedora 由社区开发,并有红帽提供公司级支持。它是红帽版的技术前导版,对新技术的采用非常激进。Fedora 的软件包和项目会被引入 RHEL 中,并最终被其他发行版采用。Arch 不像很多发行版一样提供测试分支,而是采用滚动方式进行升级。
Fedora 采用 RPM 包,用 DNF 包管理器并且提供图形化的包管理工具。Arch 使用 pacman 管理软件包。
Fedora 坚持开源理念,默认不提供有专利限制的软件,比如 MP3 支持(从 Fedora 25 开始已重新支持 MP3)。一些第三方源提供这些内容。Arch 对于 MP3 及非自由软件更加宽松,将决定权交给用户。
Fedora 提供很多安装选项,比如图形化安装和最小化安装。Fedora "spins" 还提供许多桌面环境以供用户选择(这些桌面环境都带一些默认的软件包)。Arch 仅提供了一些脚本来方便进行最小化系统安装。
Fedora 发行周期固定,但官方支持通过 dnf-plugin-system-upgrade(适合大部分的版本)或 rpm-ostree(适合 Fedora Atomic Host)工具进行跨版本升级。Arch 是滚动升级系统。
Arch 有 ports 系统,而 Fedora 没有。
Arch 和 Fedora 都面向有经验的用户和开发者,都倡导用户积极为项目开发做贡献。
Fedora 在 SELinux 整合,GCJ 编译包(GCJ 的目的是解除对 Oracle JRE 的依赖)等方面走在前列,并且积极为上游开发做贡献。和其他项目相比,Red Hat 和 Fedora 开发者贡献的 Linux 内核代码最多。
Arch Linux Wiki 被认为是各发行版Wiki中内容最丰富的和最易用的。Fedora wiki 仅是开发者、测试者和用户间交流信息的平台,并不是和 Arch Wiki 一样为最终用户准备;其实它更像一个问题追踪和合作开发 wiki。

Slackware
Slackware 使用 BSD 风格的初始化脚本,Arch 使用 systemd。
Arch 有一个强大完整的软件包管理系统 pacman。与 Slackware 的标准工具不同,它可以自己处理依赖关系并提供更自动化的系统升级方式。Slackware 用户更倾向于手动处理依赖关系,以尽可能控制自己的系统。Slackware也对预编译的库和依赖提供杰出的支持。
Arch 是一个滚动升级的系统,Slackware的发布更为保守,更喜欢提供稳定的软件包。在这个方面,Arch 更为“前卫”。
Arch 软件仓库提供成千上万的二进制包,而相比之下 Slackware 官方支持的软件包比较少。
Arch提供 Arch Build System(一个类ports系统)和AUR(用户贡献的数以万计的PKGBUILD)。Slackware 提供一个相似的系统 slackbuilds.org,它是半官方支持的Slackbuilds(和PKGBUILD相似)仓库。Slackware 用户一般会对 Arch 的多数方面感到满意。
    
BSD系列的对比

*BSDs 都始于 UC Berkeley 大学的工作,致力于提供一个可以自由分发、免费的 UNIX 系统。它们不是 GNU/Linux 发行版,而是类UNIX系统,从原版 AT&T 的UNIX代码演进而来。
Arch 和 *BSDs 都提供紧密整合的基本系统和 ports 系统。与GNU/Linux系统(比如Arch)不同,BSD 系统的内核和用户空间的程序,比如说 shell 和常用工具(像ls、cp、cat和ps),集中在单一的源代码仓库中开发。
BSD 协议注重保护程序员,而 GPL 注重保护代码。Arch 在 GPL 下发布。

Arch Linux 20 周岁记

2002年3月11日,Arch Linux 发布了 0.1 (Homer) 版本,距离第一个版本至今已满 20 周岁。第一版的发布页面对 Arch Linux 作出如下介绍:
Arch Linux 是一个 i686 优化的 Linux 发行版,基于 CRUX 的想法,由 Per Lidén 开发的出色的 Linux 发行版。它是轻量级的,包含最新的稳定版本的软件,它的包为 .tar.gz 格式,并由包管理器跟踪,该包管理器旨在允许轻松升级包。
与其他一些发行版相比,Arch 非常精简,不会保留一些相对不常用的东西。
默认的 Arch 安装提供了坚实的基础;您可以添加包来创建您正在寻找的自定义安装。
Arch 有一个包构建系统,允许您轻松创建自己的包,这使得使用自己的自定义配置重新构建包变得非常容易。
Arch 还旨在使用 linux 用户可用的较新功能,例如 reiserfs/ext3 和 devfs。

20 年过去了,Arch Linux 仍在坚持它的特色:它只保留了一些重要软件,因此系统非常精简;此外,Arch Linux 从安装到管理的所有内容都由用户自己定制,还有一点:Arch Linux 采用滚动式更新,免去了每个新版本都要下载安装一遍的繁琐(滚动更新意味系统会自动引入最新版的内核和应用,拥有有最新的功能和 bug)。不过 Arch Linux 的各种功能都要自定义,意味着用户需要了解不少 Linux 终端命令和组成系统的各种模块,也导致安装的过程比较繁琐,可能不太适合新手使用。也因为用户基本是 Linux 老鸟, Arch Linux 社区非常活跃,基本啥问题都能给新手回答上,还有爱好者打造的非官方的 Arch Linux 中文论坛。另外,赫赫有名的 Arch Wiki 也有非常全面且详细的教程。

Arch Linux 发行版正式支持龙芯架构

龙芯架构 Arch Linux 发行版官方网站于2023年7月中旬宣布结束 beta 状态,正式支持龙芯架构 (LoongArch)

早在2021年,龙芯公司为方便开发、测试补丁,在向上游社区提交补丁的过程中,将 Arch Linux 移植到龙架构平台。后续随着使用用户的不断增加,龙芯也持续进行维护和开发,先后发布了 alpha 版本 (2021.07)、beta1 版本 (2022.03)、beta2 版本 (2022.09)。从 beta2 版本开始,Arch Linux 及时跟踪、集成上游的最新移植成果,采用滚动更新的方式为用户推送升级。目前龙芯架构 Arch Linux 已经连续滚动升级了三个季度,软件仓库移植了包括 Gnome、KDE、Mate、XFCE、LXDE、Cinnamon、DDE、UKUI 在内的众多桌面环境及大量开源软件,并支持用户直接安装 AUR 软件,可以满足各类用户的不同使用需求。经统计,当前 Arch Linux x86_64 版本的 core 仓库包含 263 个软件包,extra 仓库包含 13325 个软件包,合计共 13588 个软件包;Arch Linux 龙芯架构版本的 core 仓库包含 261 个软件包,extra 仓库包含 10259 个软件包,合计共 10520 个软件包;整体移植进度大约为 x86_64 的 77%,后续会在持续滚动升级的同时,逐步完善软件包仓库。


官方主页:https://www.archlinux.org/

中文参考:https://wiki.archlinux.org/index.php/Main_Page_(简体中文)