AUR helpers (简体中文)
警告: 这些工具都不受官方支持。用户应熟悉手动构建流程,以便排查问题。
注意: 请使用讨论页对修改此文章提出建议:Talk:AUR helpers
在使用Arch用户软件仓库时,AUR工具可以自动完成以下任务:
- 搜索在AUR中发布的软件包
- 解析AUR软件包之间的依赖关系
- 下载AUR软件包
- 下载网站内容,例如用户评论
- 提交AUR软件包
pacman只会处理其仓库中预先构建好的软件包的更新。AUR软件包以PKGBUILD的形式再分发并需要AUR helper来自动化构建流程。然而请注意,即使软件包自身并没有更新,但由于某些库文件的更新,您可能仍需重新构建某些软件包、
不会为AUR软件包检查更新,所以一些工具也可以自动从AUR检查更新并再次构建新版本的软件包。请注意,即使软件包自身并没有更新,但由于某些库文件的更新,您可能仍需重新构建某些软件包、
词汇表
#对比表中这些列的含义:
- 文件检查
-
默认不
source
PKGBUILD,或者在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
.