引言

Arch Linux以其简洁、轻量和高度可定制性在Linux社区中享有盛誉。其核心理念”保持简单”(KISS - Keep It Simple, Stupid)吸引了众多技术爱好者。Arch Linux的一个标志性特性是Arch用户仓库(AUR - Arch User Repository),这是一个社区驱动的仓库,包含了数以万计的软件包,极大地扩展了官方仓库的软件范围。然而,尽管AUR提供了无与伦比的便利性,一些Arch的衍生发行版选择不包含或限制AUR的使用。本文将深入探讨这些不包含AUR的Arch衍生发行版,分析它们的独特特点、优势,以及开发者为何选择放弃AUR带来的便利。

什么是AUR及其在Arch Linux生态系统中的作用

Arch用户仓库(AUR)是一个社区驱动的软件仓库平台,允许用户上传和维护PKGBUILD脚本,这些脚本描述了如何从源代码构建软件包。AUR本身不是一个二进制仓库,而是一个包含构建脚本的集合。用户可以通过AUR助手(如yay, paru等)来搜索、下载和构建AUR中的软件包。

AUR在Arch Linux生态系统中扮演着至关重要的角色:

  1. 扩展软件可用性:AUR包含了官方仓库中未提供的数千个软件包,从最新的开发工具到小众应用程序。

  2. 提供最新版本:用户可以通过AUR获取软件的最新版本,而不必等待官方仓库更新。

  3. 社区贡献平台:AUR允许社区成员贡献和维护软件包,形成了一个活跃的开发者生态系统。

  4. 简化安装流程:通过AUR,安装复杂的软件变得简单,用户只需运行几个命令即可。

然而,AUR并非没有缺点:

  1. 安全风险:AUR软件包未经官方审核,可能包含恶意代码或安全漏洞。

  2. 稳定性问题:AUR软件包可能不稳定或与系统其他部分不兼容,特别是在系统更新后。

  3. 维护负担:用户需要定期更新AUR软件包,并可能需要处理依赖关系和构建问题。

不包含AUR的主要Arch衍生发行版介绍

虽然许多Arch衍生发行版完全支持AUR,但也有一些选择不包含或限制其使用。以下是一些主要的例子:

EndeavourOS

EndeavourOS是一个相对较新的Arch衍生发行版,提供Arch的简化安装体验。虽然EndeavourOS默认不预装AUR助手,但它完全支持AUR的使用。用户可以自行安装AUR助手,如yay或paru。EndeavourOS的哲学是提供接近Arch的体验,同时添加一些便利功能,因此它并不完全放弃AUR,而是让用户自行决定是否使用。

ArcoLinux

ArcoLinux是一个基于Arch的发行版,专注于提供完整的开箱即用体验,包括Xfce桌面环境和一系列预装的应用程序。ArcoLinux不默认包含AUR助手,但用户可以自行安装。与EndeavourOS类似,ArcoLinux并不完全放弃AUR,而是让用户自行决定是否使用。

Manjaro

Manjaro是最受欢迎的Arch衍生发行版之一,它有自己的软件仓库,这些仓库是Arch官方仓库的延迟版本,以确保稳定性。Manjaro确实支持AUR,但它通过自己的系统对AUR软件包进行了一些额外的检查和处理。因此,Manjaro并不完全放弃AUR,而是对其使用进行了限制和管理。

BlackArch

BlackArch是一个基于Arch的发行版,专门用于渗透测试和安全研究。它包含了大量的安全工具,这些工具主要来自其自己的仓库,而不是AUR。虽然BlackArch用户仍然可以访问AUR,但该发行版的主要重点是提供经过测试的安全工具集合,而不是依赖AUR。

其他不包含AUR的Arch衍生版

一些较小或更专门的Arch衍生发行版可能选择不包含AUR,例如:

  • Bluestar Linux:一个为多媒体和创意工作设计的Arch衍生版
  • Chakra Linux:最初基于Arch,但现在已经发展出自己的包管理系统
  • KaOS:一个专注于KDE桌面环境的独立发行版,最初基于Arch

这些发行版可能因为各种原因选择不包含或限制AUR的使用,包括安全性、稳定性、维护负担或特定的使用场景。

然而,值得注意的是,完全放弃AUR的Arch衍生发行版相对较少,因为AUR是Arch生态系统的一个重要组成部分。大多数发行版选择提供AUR访问,但可能通过默认不安装AUR助手或提供额外的安全检查来限制其使用。

这些发行版的独特特点

不包含或限制AUR使用的Arch衍生发行版通常具有一些独特的特点:

  1. 精选的软件仓库:这些发行版通常维护自己的软件仓库,这些仓库包含经过精选和测试的软件包。例如,Manjaro有自己的仓库,这些仓库是Arch官方仓库的延迟版本,以确保稳定性。

  2. 简化的用户体验:通过不默认包含AUR,这些发行版可以提供更简化的用户体验,特别是对于Linux新手。用户不需要面对AUR的复杂性和潜在问题。

  3. 增强的稳定性:限制AUR的使用可以提高系统的稳定性,因为用户更可能使用经过测试的软件包,而不是可能不稳定的AUR软件包。

  4. 特定的目标受众:一些发行版专注于特定的使用场景或目标受众,例如BlackArch专注于安全工具,因此它们提供特定领域的软件包,而不是依赖AUR。

  5. 额外的工具和功能:这些发行版通常提供自己的工具和功能,以弥补没有AUR的不足。例如,EndeavourOS提供了自己的欢迎应用程序,帮助用户配置系统。

  6. 更强的社区支持:由于软件包范围较窄,这些发行版可以提供更有针对性的社区支持,帮助用户解决与特定软件包相关的问题。

放弃AUR的优势

放弃或限制AUR的使用可以带来一些显著的优势:

安全性

AUR软件包未经官方审核,可能包含恶意代码或有安全漏洞。通过不包含AUR,发行版可以提供更安全的系统,因为用户只能安装经过审核的软件包。这对于安全敏感的环境或新手用户尤为重要。

例如,BlackArch专注于安全工具,因此它对软件包的安全性有更高的要求。通过维护自己的仓库而不是依赖AUR,BlackArch可以确保其提供的工具经过适当的安全审查。

稳定性

AUR软件包可能不稳定或与系统其他部分不兼容,特别是在系统更新后。通过限制AUR的使用,发行版可以提高系统的稳定性,减少用户可能遇到的问题。

Manjaro是一个很好的例子,它通过延迟Arch的更新和测试软件包来提供更稳定的系统。虽然Manjaro支持AUR,但它通过自己的系统对AUR软件包进行了一些额外的检查和处理,以减少潜在的稳定性问题。

简化维护

维护AUR软件包可能需要用户投入大量时间和精力,特别是当软件包需要频繁更新或解决依赖关系问题时。通过不包含AUR,发行版可以简化系统的维护,使用户能够更专注于使用系统而不是维护它。

对于发行版开发者来说,不包含AUR也意味着他们不需要处理与AUR相关的问题和支持请求,从而减少了维护负担。

用户体验

对于Linux新手或那些不想深入系统管理的用户来说,AUR可能过于复杂和令人生畏。通过不包含AUR,发行版可以提供更简化的用户体验,减少用户可能遇到的挫折。

例如,EndeavourOS和ArcoLinux都提供了更友好的安装过程和初始设置,使新用户能够更容易地开始使用Arch-based系统,而不需要立即面对AUR的复杂性。

为何开发者选择放弃AUR

开发者选择放弃或限制AUR的使用有多种原因,可以归纳为技术原因、哲学原因和资源限制。

技术原因

  1. 质量控制:AUR软件包的质量参差不齐,有些可能构建失败或包含错误。通过维护自己的仓库,开发者可以更好地控制软件包的质量。

  2. 依赖管理:AUR软件包可能有复杂的依赖关系,这些依赖可能与系统其他部分冲突。通过不包含AUR,开发者可以避免这些潜在的依赖问题。

  3. 系统一致性:AUR软件包可能使用不同的构建选项或配置,导致系统不一致。通过限制AUR的使用,开发者可以保持系统的一致性。

哲学原因

  1. 简化原则:一些开发者遵循Arch的”保持简单”(KISS)原则,认为AUR增加了系统的复杂性,不符合这一原则。

  2. 用户自主权:一些开发者认为,用户应该自己决定是否使用AUR,而不是由发行版强制提供。因此,他们选择不默认包含AUR,但允许用户自行安装。

  3. 专注核心功能:一些开发者希望专注于发行版的核心功能,而不是处理与AUR相关的问题。例如,BlackArch专注于安全工具,因此它维护自己的仓库而不是依赖AUR。

资源限制

  1. 维护负担:处理与AUR相关的问题和支持请求需要大量资源。对于小团队或志愿者维护的发行版来说,这可能是一个重大负担。

  2. 基础设施限制:提供AUR支持需要相应的基础设施,如构建服务器和存储空间。对于资源有限的发行版来说,这可能是一个挑战。

  3. 专业知识限制:处理AUR软件包可能需要特定的专业知识,不是所有开发者都具备这些知识。通过限制AUR的使用,开发者可以专注于他们熟悉的领域。

用户如何应对没有AUR的情况

对于使用不包含AUR的Arch衍生发行版的用户来说,有几种方法可以应对没有AUR的情况:

  1. 手动安装软件:用户可以从源代码手动编译和安装软件,而不使用AUR。这需要更多的工作,但提供了最大的灵活性。

例如,要手动安装一个软件,用户可以:

 # 下载源代码 git clone https://example.com/software.git cd software # 检查依赖并安装 # 查看README或INSTALL文件了解依赖 sudo pacman -S dependency1 dependency2 # 配置和构建 ./configure make # 安装 sudo make install 
  1. 使用第三方仓库:一些第三方仓库提供了AUR中流行软件包的预编译版本,用户可以添加这些仓库来获取更多软件。

例如,添加第三方仓库:

 # 编辑pacman.conf文件 sudo nano /etc/pacman.conf # 添加仓库 [thirdparty] SigLevel = Optional TrustAll Server = https://example.com/repo/$arch # 更新并安装软件 sudo pacman -Syu sudo pacman -S software-from-thirdparty 
  1. 使用Flatpak或Snap:这些通用的软件打包系统提供了许多软件包,可以作为AUR的替代品。许多Arch衍生发行版支持Flatpak和Snap。

安装和使用Flatpak:

 # 安装Flatpak sudo pacman -S flatpak # 添加Flathub仓库 flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo # 安装软件 flatpak install flathub com.example.App 
  1. 自行安装AUR助手:虽然发行版不默认包含AUR助手,但用户通常可以自行安装,如yay或paru,来访问AUR。

安装yay AUR助手:

 # 安装必要的依赖 sudo pacman -S git base-devel # 克隆yay仓库 git clone https://aur.archlinux.org/yay.git cd yay # 构建和安装 makepkg -si 
  1. 使用Docker或虚拟机:对于需要特定软件的用户,可以使用Docker容器或虚拟机来运行这些软件,而不需要在主机系统上安装。

使用Docker运行应用程序:

 # 安装Docker sudo pacman -S docker sudo systemctl start docker sudo systemctl enable docker # 运行应用程序容器 docker run -it --rm example/app 

结论:权衡与选择

不包含AUR的Arch衍生发行版代表了一种权衡:它们放弃了AUR提供的便利和灵活性,以换取安全性、稳定性和简化的用户体验。对于不同的用户和用例,这种权衡可能有不同的价值。

对于Linux新手或那些重视稳定性和安全性的用户来说,这些发行版可能是更好的选择。它们提供了Arch的许多优点,如滚动更新和轻量级设计,同时减少了AUR可能带来的复杂性。

对于更高级的用户或那些需要最新软件的用户来说,AUR的便利可能更重要。这些用户可能更喜欢包含AUR的发行版,或者选择自己安装AUR助手。

最终,选择哪种发行版取决于用户的需求、偏好和技术水平。不包含AUR的Arch衍生发行版提供了一个有价值的选择,丰富了Linux发行版的生态系统,确保了不同用户都能找到适合自己需求的发行版。

无论是选择包含AUR的发行版还是不包含AUR的发行版,Linux用户都能从这种多样性中受益,找到最适合自己需求的解决方案。Arch Linux及其衍生发行版的成功正是建立在这种多样性和选择自由的基础上。