AUR helpers (简体中文)
警告: 这些工具都不受官方支持。用户应熟悉手动构建流程,以便排查问题。
注意: 请使用讨论页对修改此文章提出建议:Talk:AUR helpers
在使用Arch用户软件仓库时,AUR工具可以自动完成以下任务:
- 搜索在AUR中发布的软件包
- 解析AUR软件包之间的依赖关系
- 下载AUR软件包
- 下载网站内容,例如用户评论
- 提交AUR软件包
pacman只会处理其仓库中预先构建好的软件包的更新。AUR软件包以PKGBUILD的形式再分发并需要AUR helper来自动化构建流程。然而请注意,即使软件包自身并没有更新,但由于某些库文件的更新,您可能仍需重新构建某些软件包、
不会为AUR软件包检查更新,所以一些工具也可以自动从AUR检查更新并再次构建新版本的软件包。请注意,即使软件包自身并没有更新,但由于某些库文件的更新,您可能仍需重新构建某些软件包、
词汇表
#对比表中这些列的含义:
- 文件检查
- 
默认不sourcePKGBUILD,或者在source之前让用户有机会手动检查PKGBUILD。已知某些工具在用户可以检查PKGBUILD之前就执行了source,这会允许执行PKGBUILD中的恶意代码。
- 差异比较
- 有检查包差异的能力。除了PKGBUILD,还包括对.install或.patch文件更改的检查。
- Git clone
- 默认使用git-clone(1)从AUR获取相关文件。
- 可靠的语法分析器
- 有能力通过使用所提供的元数据(PRC/.SRCINFO)代替解析PKGBUILD以处理复杂包,例如aws-cli-gitAUR。
- 可靠的求解器
- 有能力正确处理复杂的依赖关系,例如ros-lunar-desktopAUR[损坏的链接:package not found]。
- 包拆分
- 有能力正确地构建和安装:
- 对于有相同包基础的多个软件包,不重复构建和安装包基础,例如clionAUR。
- 拆分依赖相同包基础的包(Split packages which depend on a package from the same package base), 例如libc++ and libc++abi。
- 独立地拆分包,例如python-pyalsaaudioAUR和python2-pyalsaaudioAUR。
 
- Shell补全
- Tab completion在列出的shell中可用
提示: 
- 可选意味着功能可用,但需要通过命令行选项或配置文件启用。
- 部分意味着功能尚未完全实现,或者与标准有一些差别。
对比表
搜索和下载
| 名称 | 语言 | Git clone | 可靠的语法分析器 | 可靠的求解器 | 命令补全 | 特性 | 
|---|---|---|---|---|---|---|
| auracle-gitAUR | C++ | 是 | 是 | 是 | bash | 显示构建顺序 | 
| pbgetAUR | Python | 是 | 是 | – | – | – | 
| repoctlAUR | Go | 否 | 是 | – | zsh | 支持本地仓库 | 
| yaahAUR | Bash | 可选 | 是 | – | bash | – | 
搜索和构建
| 名称 | 语言 | 文件检查 | 差异比较 | Git clone | 可靠的语法分析器 | 可靠的求解器 | 包拆分 | 命令补全 | 特性 | 
|---|---|---|---|---|---|---|---|---|---|
| aurutilsAUR | Bash | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh | vifm, 本地仓库, 本地补丁应用. Package signing, clean chroot, 按票数或受欢迎度排序 | 
| bauerbillAUR | Python | 是 | 否 | 是 | 是 | 是 | 是 | bash, zsh | ABS支持, 使用 bb-wrapper封装pacman, trust管理, Powerpill扩展 | 
| PKGBUILDerAUR | Python | 否 | 否 | 是 | 是 | 是 | 部分 | – | 使用 pb封装pacman, 默认自动构建, 使用-F以禁用, 多语言 | 
| ruaAUR | Rust | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh | 本地补丁应用, Bubblewrap, .pkg.tar检查 | 
Pacman封装
| 名称 | 语言 | 文件检查 | 差异比较 | Git clone | 可靠的语法分析器 | 可靠的求解器 | 包拆分 | 不安全的参数 | 命令补全 | 特性 | 
|---|---|---|---|---|---|---|---|---|---|---|
| auraAUR | Haskell | 否 | 部分 | 是 | 是 | 是 | 是 | – | bash, fish, zsh | 默认自动构建,使用 --dryrun以禁用,降级支持,多语言 | 
| paruAUR | Rust | 是 | 是 | 是 | 是 | 是 | 是 | -Sy --ask | bash, fish, zsh | 导入PGP密钥 | 
| pikaurAUR | Python | 是 | 是 | 是 | 是 | 是 | 是 | -Sy | bash, fish, zsh | 动态用户,多语言,按票数或受欢迎度排序,显示新闻,忽略错误 | 
| trizenAUR | Perl | 是 | 是 | 是 | 是 | 是 | 部分 | – | bash,zsh,fish | 默认自动构建,使用 -G以禁用,AUR评论 | 
| yayAUR | Go | 是 | 是 | 是 | 是 | 是 | 是 | -Sy --ask | bash,fish,zsh | 按票数排序,导入PGP密钥,架构提示 | 
| pakkuAUR | Nim | 是 | 是 | 是 | 是 | 是 | 是 | -Sy | bash,zsh | ABS支持,AUR评论,导入PGP密钥 | 
开发停止或有问题
此表中的是已经停止开发的,或是在过去6个月内有未处理的文件检查,Clean build或是原生pacman的问题的项目。
| 名称 | 语言 | 原生pacman | 文件检查 | Clean build | 可靠的语法分析器 | 可靠的求解器 | 拆分包 | Git clone | 差异比较 | 批量处理 | 命令补全 | 特性 | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| aurelAUR[损坏的链接:package not found] [1] | Emacs Lisp | – | 是 | – | – | – | – | 否 | – | – | – | Emacs插件,不自动构建 | 
| pacaurAUR [2] | Bash/C | 使用 -Ud | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 1,3 | bash,zsh | 多语言, 按票数或受欢迎度排序 | 
| wrapaurAUR[损坏的链接:package not found] | Bash | 是 | 是 | 是 | 否 | 否 | 否 | 是 | 否 | – | – | 更新镜像列表显示新闻和AUR评论 | 
| spinachAUR[损坏的链接:package not found] [3] | Bash | – | 是 | 是 | 否 | 否 | 否 | 否 | 否 | – | – | – | 
| burgaurAUR[损坏的链接:package not found] [4] | Python/C | – | 可选 | 是 | 否 | 否 | 否 | 否 | 否 | – | – | cower的包装 | 
| packer-aur-gitAUR[损坏的链接:package not found] | Bash | 是 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | – | – | – | 
| yaourtAUR[损坏的链接:package not found] | Bash/C | 拆分 -Syu | 否 [5] [6] | 否 | 否 | 否 | 否 | 可选 | 可选 | 2 | bash,zsh,fish | 备份 (更改pacman数据库!),ABS支持,显示AUR评论,多语言 | 
| aurmanAUR[7] | Python | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 1,2*,3* | bash,fish | 导入PGP密钥,按票数或欢迎度排序,显示新闻 | 
| naamanAUR[损坏的链接:package not found] | Python | – | 可选 | 是 | 是 | 部分 | 部分 | 是 | 否 | 1* | bash | 默认自动构建,使用 --fetch以禁用,使用-d启用求解器 | 
| repofishAUR[损坏的链接:package not found] | Bash | – | 可选 | 是 | 否 | 否 | 否 | 是 | 是 | 1* | – | 默认自动构建,使用 check或update以禁用,本地仓库支持 | 
| aurgetAUR[8] | Bash | – | 可选 | 是 | 否 | 否 | 否 | 否 | 否 | – | bash,zsh | 按票数排序 | 
图形化工具
警告: 
- 图形化的AUR工具通常针对于基于Arch的发行版. 在Arch Linux 中使用它们可能会导致系统故障,例如进行自动的部分升级。
- 如果某项工具有已知的有问题的行为,它将被标记为红色。
| 名称 | 语言 | GUI toolkit | 后端 | 注意 | 
|---|---|---|---|---|
| aarchupAUR | C | GTK+ 2 | auracle | – | 
| argonAUR | Python | GTK+ 3 | auracle, pacaur | – | 
| cylonAUR | Bash | TUI | auracle, trizen | – | 
| kaluAUR | C | GTK+ 3 | – | – | 
| pactrayAUR | Python | GTK+3 | auracle | – | 
| pamac-aurAUR | Vala | GTK+ 3 | – | 使用libalpm(3)而不是pacman(8) | 
| pakku-guiAUR | Python | GTK+ 3 | pakku | – | 
| pkgbrowserAUR | Python | Qt 5 | – | – | 
| updatehintAUR | Bash | GTK+ 3 | auracle | – | 
| octopiAUR | C++ | Qt 5 | trizen, pacaur, yaourt | – | 
| yupAUR | Go | TUI | – | – | 
维护
- aur-out-of-date — 使用hoster的API检查AUR包的上游改动。
- 
aurpublish — 帮助使用git-subtree(1)管理和上传AUR软件包。使用githooks(5)验证PKGBUILD完整性,自动生成.SRCINFO并创建commit模板
- devtools — 在干净的环境(通过systemd-nspawn容器)中构建软件包来确保正确性。由aurutilsAUR和clean-chroot-managerAUR封装。
- pkgbuild-watch — 监视上游网页的更改。
- pkgoutofdate — 解析PKGBUILD中的URL,并以发送递增的版本号的方式来检查更新。
其它
- aur-talk — 获取并显示AUR评论。
- aurvote-utils — 一系列管理AUR投票的应用
- haskell-archlinux — 用于访问AUR和包元数据的库,使用Haskell语言编写。
- haskell-aur — 用于访问Aurweb RPC interface的Haskell库。
- package-query — 用于查询libalpm(3)和AUR的工具。
- python3-aur — 用于访问AUR包的信息并自动完成AUR交互的Python 3模块。
- raur — 用于访问Aurweb RPC interface的Rust库。
- 
aur4_import.sh — 从包含多个包的git仓库拆分包,为每个提交添加更新.SRCINFO。
- 
aur4_make_submodule.sh — 使用aur4的子模块来替换较大的git仓库的包,包括.SRCINFO.
