AUR 助手 - Arch Linux 中文维基

跳转到内容

# AUR 助手

来自 Arch Linux 中文维基
翻译状态：

- 本文（或部分内容）译自 AUR_helpers，最近一次同步于 2025-01-22，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

相关文章

- yay
- pacman

警告：Arch Linux 不对 AUR 助手相关问题提供支持。您应当熟悉手动构建过程，以准备好解决可能遇到的问题。
提示：优先使用讨论页而非编辑此文：Talk:AUR 助手。

使用 Arch 用户仓库时，AUR 助手可以自动完成以下任务：

- 查找 AUR 上发布的包；
- 解析 AUR 包之间的依赖关系；
- 获取并构建 AUR 软件包；
- 获取在线内容，例如用户评论；
- 提交 AUR 软件包。

Pacman 只处理其仓库内预构建的软件包的更新。AUR 软件包以 PKGBUILD 的形式分发，并需要 AUR 助手自动完成构建。然而切记：即使该包自身没有更新，但其依赖的共享库（shared library）有更新，您可能仍需重新构建该包。

## 说明

#对比表各表头释义：

文件检查
  默认不 source PKGBUILD；或在此之前，提醒并允许用户手动检查 PKGBUILD。有些助手会在用户能检查 PKGBUILD 之前就执行了 source，给隐含的恶意代码带来可能性。
差异比较：有能力检查包之间差异。除了 PKGBUILD，还要检查对附加文件的改动，例如 `.install` 或 `.patch` 文件。
Git clone
  默认使用 git-clone(1) 从 AUR 获取构建文件。
可靠的解析器：能通过运用提供的元数据 (RPC/.SRCINFO) 而非解析 PKGBUILD 来处理复杂软件包，例如 aws-cli-gitAUR。
可靠的求解器：有能力正确解决并构建复杂的依赖链，例如 ros-noetic-desktop-fullAUR。
包拆分：有能力正确地构建并安装：
  - 对于有相同包基础的多个软件包，不重复构建和安装其基础，例如 clionAUR。
  - 拆分依赖于同一基础的多个软件包，例如 samsung-unified-driverAUR。
  - 独立拆分软件包，例如 nxproxyAUR 以及 nxagentAUR。

Shell 补全
  Tab 补全在所列出的 shell 中可用。

注意：

- 可选 意味着该功能可用，但是需要通过命令行参数或配置文件启用。
- 部分 意味着该功能尚未完全实现，或与给定标准有部分差异。

## 对比表

### 查找并下载

名称 | 编写语言 | 文件检查 | 差异比较 | Git clone | 可靠的解析器 | 可靠的求解器 | Shell 补全 | 特性
--- | --- | --- | --- | --- | --- | --- | --- | ---
auracle-gitAUR | C++ | 是 | 否 | 是 | 是 | 是 | bash | 显示构建顺序
pbgetAUR | Python | 是 | 否 | 是 | 是 | – | – | –
repoctlAUR | Go | 是 | 否 | 否 | 是 | – | bash, zsh, fish | 本地仓库
yaahAUR | Bash | 是 | 否 | 可选 | 是 | – | bash | –

### 查找并构建

名称 | 编写语言 | 文件检查 | 差异比较 | Git clone | 可靠的解析器 | 可靠的求解器 | 包拆分 | Shell 补全 | 特性
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
aurutilsAUR | Bash | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh | 本地仓库，应用本地补丁，包签名，干净的 chroot
bauerbillAUR | Python | 是 | 否 | 是 | 是 | 是 | 是 | bash, zsh | `bb-wrapper` 用于 pacman 封装和信任管理
PKGBUILDerAUR | Python | 否 | 否 | 是 | 是 | 是 | 部分 | – | `pb` 用于 pacman 封装
ruaAUR | Rust | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh, fish | l应用本地补丁，bubblewrap， `.pkg.tar` 检查

### Pacman 封装

警告：pacman(8) 封装将包管理器的工作抽象化。这些封装可能（可选或默认地）引入 不安全标志，或其他导致系统缺陷的异常行为。
注意：下列 pacman 封装支持批量（而非按需）操作：pacaurAUR, pikaurAUR, yayAUR, auraAUR, paruAUR, aurmanAUR

名称 | 编写语言 | 文件检查 | 差异比较 | Git clone | 可靠的解析器 | 可靠的求解器 | 包拆分 | 不安全标志 | Shell 补全 | 特性
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
auraAUR | Rust | 否 | 部分 | 是 | 是 | 是 | 是 | – | bash, fish, zsh | 干净的 chroot
aurmanAUR | Python | 是 | 是 | 是 | 是 | 部分 | 是 | -Sy --ask | bash, fish | 提取 PGP 密钥
pacaurAUR | Bash | 是 | 是 | 是 | 是 | 是 | 是 | --ask | bash, zsh | –
pakkuAUR | Nim | 是 | 是 | 是 | 是 | 是 | 是 | -Sy | bash, zsh | –
paruAUR | Rust | 是 | 是 | 是 | 是 | 是 | 是 | -Sy --ask | bash, fish, zsh | 本地仓库，干净的 chroot
pikaurAUR | Python | 是 | 是 | 是 | 是 | 是 | 是 | -Sy | bash, fish, zsh | 动态用户
trizenAUR | Perl | 是 | 是 | 是 | 是 | 是 | 部分 | – | bash, fish, zsh | –
yayAUR | Go | 是 | 是 | 是 | 是 | 是 | 是 | --ask | bash, fish, zsh | –

## 图形化

警告：使用图形化的 AUR 助手可能导致系统缺陷，例如执行无人值守的部分更新。

- Argon — 使用 Python 编写的 GTK 3 pacman 封装。

  https://github.com/14mRh4X0r/arch-argon || argonAUR

- Bauh — 使用 Python 编写的 Qt 5 应用，支持 AppImage，Debian，Arch 软件包（含 AUR），Flatpak，Snap 以及 原生 Web 应用。

  https://github.com/vinifmor/bauh || bauhAUR

- Cylon — 使用 Bash 编写的 TUI（终端界面）pacman 封装。

  https://github.com/gavinlyonsrepo/cylon || cylonAUR

- Kalu — 系统托盘通知图标，使用 libalpm 和 PolicyKit 编写，有可选的更新器。

  https://github.com/Thulinma/kalu || kaluAUR

- Octopi — 使用 C++ 编写的 Qt 5 pacman 封装。

  https://tintaescura.com/projects/octopi || octopiAUR

- Pacseek — 一个终端用户界面封装，可以查找并安装 Arch Linux 软件包。

  https://github.com/moson-mo/pacseek || pacseekAUR

- Pamac — 使用 libalpm(3)、为 Manjaro 编写的、独立的 GTK 4（或终端界面）包管理器。有托盘程序；也可在命令行界面中使用。

  https://wiki.manjaro.org/index.php/Pamac || pamac-aurAUR

- Pakku GUI — 使用 python 编写的 pakku 的 GTK 3 前端。

  https://gitlab.com/mrvik/pakku-gui || pakku-guiAUR

- PkgBrowser — 使用 python 编写的 Qt 5 程序、查看官方仓库/AUR 软件包的只读浏览器。

  https://osdn.net/projects/pkgbrowser/ || pkgbrowserAUR

- Yup — 使用 Go 和 Ncurses 编写的 TUI pacman 封装。

  https://github.com/ericm/yup || yupAUR

## 维护

- aur-out-of-date — 借助主机服务提供者的 API，检查 AUR 软件包的上游更改。

  https://github.com/simon04/aur-out-of-date || aur-out-of-dateAUR

- aurpublish — AUR 助手脚本：借助 git-subtree(1) 管理和上传 AUR 软件包。会使用 githooks(5) 校验 PKGBUILD，自动生成 .SRCINFO，以及创建需提交信息的模板。

  https://github.com/eli-schwartz/aurpublish || aurpublish包

- devtools — 在干净的环境（systemd-nspawn 容器）中构建软件包，以确保正确性。被 auraAUR，aurutilsAUR，clean-chroot-managerAUR，和 paruAUR 封装。

  https://gitlab.archlinux.org/archlinux/devtools || devtools包

- pkgoutofdate — 解析 PKGBUILD 中的源 URL，并以发送递增版本号的方式，尝试寻找软件包的较新版本。

  https://github.com/anatol/pkgoutofdate || pkgoutofdate-gitAUR

- repman — 用于管理本地和远程仓库的命令行工具。

  https://gitlab.com/mipimipi/repman || repman-gitAUR

## 其他

- aur-talk — 提取并显示 AUR 评论。

  https://github.com/GermainZ/aur-talk || aur-talk-gitAUR

- aurvote-utils — 一系列管理 AUR 投票的实用工具。

  https://github.com/jadenPete/aurvote-utils || aurvote-utilsAUR

- haskell-aur — 用于访问 Aurweb RPC 界面的 Haskell 库。

  https://hackage.haskell.org/package/aur || haskell-aurAUR

- package-query — 用于查询 libalpm(3) 和 AUR 的工具。

  https://github.com/archlinuxfr/package-query || package-queryAUR

- python3-aur — 用于访问 AUR 包信息、自动化 AUR 交互过程的 Python 3 模块和 AUR 助手工具。

  https://xyne.dev/projects/python3-aur || python3-aurAUR

- raur — 用于访问 Aurweb RPC 界面的 Rust 库。

  https://gitlab.com/davidbittner/raur ||

## 参见

- 适用于 Arch Linux 的图形化包管理器 (DebugPoint, 2023) 提供#图形化中某些选项的截屏和简单信息。

分类：​

- 包管理
- 软件比较

AUR 助手
添加话题