AUR 助手
警告:AUR 助手不受 Arch Linux 官方支持。您应当熟悉手动构建过程,以准备好解决可能遇到的问题。
提示:优先使用讨论页而非编辑此文:Talk:AUR 助手。
使用 Arch 用户仓库时,AUR 助手可以自动完成以下任务:
- 查找 AUR 上发布的包;
- 解析 AUR 包之间的依赖关系;
- 获取并构建 AUR 软件包;
- 获取在线内容,例如用户评论;
- 提交 AUR 软件包。
Pacman 只处理其仓库内预构建的软件包的更新。AUR 软件包以 PKGBUILD 的形式分发,并需要 AUR 助手自动完成构建。然而切记:即使该包自身没有更新,但其依赖的共享库(shared library)有更新,您可能仍需重新构建该包。
说明
#对比表各表头释义:
- 文件检查
- 默认不 source PKGBUILD 文件;或在 source 之前,提醒并允许用户手动检查 PKGBUILD。有些助手会在用户能够检查 PKGBUILD 之前就执行 source,为潜在的恶意代码放行。
- 差异比较
- 有能力检查包之间差异。不只是
PKGBUILD文件,还要坚持对其他文件的改动,例如.install或.patch文件。 - Git clone
- 默认使用 git-clone(1) 从 AUR 获取构建文件。
- 可靠的解析器
- 能运用提供的元数据 (RPC/
.SRCINFO) 而非解析PKGBUILD文件来处理复杂软件包,例如 aws-cli-gitAUR。 - 可靠的求解器
- 有能力正确解决并构建复杂的依赖链,例如 iri-git-metaAUR。
- 包拆分
- 有能力正确地构建并安装:
- 对于有相同包基础的多个软件包,不重复构建和安装其基础,例如 clionAUR。
- 拆分依赖于同一基础的多个软件包,例如 samsung-unified-driverAUR。
- 独立拆分软件包,例如 nxproxyAUR 以及 nxagentAUR。
注意:
- 可选 意味着该功能可用,但是需要通过命令行参数或配置文件启用。
- 部分 意味着该功能尚未完全实现,或与给定标准有部分差异。
对比表
查找并下载
| 名称 | 编写语言 | 文件检查 | 差异比较 | Git clone | 可靠的解析器 | 可靠的求解器 | Shell 补全 | 特性 |
|---|---|---|---|---|---|---|---|---|
| auracle-gitAUR | C++ | 是 | 否 | 是 | 是 | 是 | bash | 显示构建顺序 |
| repoctlAUR | Go | 是 | 否 | 否 | 是 | – | bash, zsh, fish | 本地仓库 |
查找并构建
| 名称 | 编写语言 | 文件检查 | 差异比较 | Git clone | 可靠的解析器 | 可靠的求解器 | 包拆分 | Shell 补全 | 特性 |
|---|---|---|---|---|---|---|---|---|---|
| aurutilsAUR | Bash | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh | 本地仓库,应用本地补丁,包签名,干净的 chroot |
|
pat-aur-host-gitAUR pat-aur-client-gitAUR |
Elvish | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh, elvish | 本地仓库, 本地补丁应用程序,包签名, 干净的 chroot(通过 bubblewrap),交叉编译 |
Pacman 封装
| 名称 | 编写语言 | 文件检查 | 差异比较 | Git clone | 可靠的解析器 | 可靠的求解器 | 包拆分 | 不安全标志 | Shell 补全 | 特性 |
|---|---|---|---|---|---|---|---|---|---|---|
| auraAUR | Rust | 否 | 部分 | 是 | 是 | 是 | 是 | – | bash, fish, zsh | 干净的 chroot |
| 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 封装。
- Bauh — 使用 Python 编写的 Qt 5 应用,支持 AppImage,Debian,Arch 软件包(含 AUR),Flatpak,Snap 以及 原生 Web 应用。
- Cylon — 使用 Bash 编写的 TUI(终端用户界面)pacman 封装。
- Kalu — 系统托盘通知图标,使用 libalpm 和 PolicyKit 编写,有可选的更新器。
- Octopi — 使用 C++ 编写的 Qt 5 pacman 封装。
- Pacsea — 快速、键盘友好型 TUI,可用于浏览、安装 Arch 和 AUR 软件包,使用 Rust 编写。
- Pacseek — 一个终端用户界面封装,可以查找并安装 Arch Linux 软件包。
- Pamac — 使用 libalpm(3)、为 Manjaro 编写的、独立的 GTK 4(或终端界面)包管理器,有托盘集成。
- Pakku GUI — 使用 python 编写的 pakku 的 GTK 3 前端。
- PkgBrowser — 使用 python 编写的 Qt 5 程序、查看官方仓库/AUR 软件包的只读浏览器。
- SPM — 一个 TUI pacman 和 yay 的封装,视觉化、交互化包管理。
- Yup — 使用 Go 和 Ncurses 编写的 TUI pacman 封装。
维护
- aur-out-of-date — 借助主机服务提供者的 API,检查 AUR 软件包的上游更改。
-
aurpublish — AUR 助手脚本:借助 git-subtree(1) 管理和上传 AUR 软件包。会使用 githooks(5) 校验
PKGBUILD文件,自动生成.SRCINFO文件,以及创建需提交信息的模板。
- devtools — 在干净的环境(systemd-nspawn 容器)中构建软件包,以确保正确性。被 auraAUR,aurutilsAUR,clean-chroot-managerAUR,和 paruAUR 封装。
-
pkgoutofdate — 解析
PKGBUILD中的源 URL,并以发送递增版本号的方式,尝试寻找软件包的较新版本。
- repman — 用于管理本地和远程仓库的命令行工具。
其他
- aur-talk — 提取并显示 AUR 评论。
- aurvote-utils — 一系列管理 AUR 投票的实用工具。
- haskell-aur — 用于访问 Aurweb RPC 界面的 Haskell 库。
- package-query — 用于查询 libalpm(3) 和 AUR 的工具。
- python3-aur — 用于访问 AUR 包信息、自动化 AUR 交互过程的 Python 模块和 AUR 助手工具。
- raur — 用于访问 Aurweb RPC 界面的 Rust 库。
参见
- 适用于 Arch Linux 的图形化包管理器 (DebugPoint, 2023) 提供#图形化中某些选项的截屏和简单信息。