AUR 助手
(重定向自AUR helpers)
警告: 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-melodic-desktopAUR。
- 包拆分:有能力正确地构建并安装:
-
- 对于有相同包基础的多个软件包,不重复构建和安装其基础,例如 clionAUR。
- 拆分依赖于同一基础的多个软件包,例如 samsung-unified-driverAUR。
- 独立拆分软件包,例如 nxproxyAUR 以及 nxagentAUR。
注意:
- 可选 意味着该功能可用,但是需要通过命令行参数或配置文件启用。
- 部分 意味着该功能尚未完全实现,或与给定标准有部分差异。
对比表[编辑 | 编辑源代码]
查找并下载[编辑 | 编辑源代码]
名称 | 编写语言 | 文件检查 | 差异比较 | 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 封装[编辑 | 编辑源代码]
名称 | 编写语言 | 文件检查 | 差异比较 | Git clone | 可靠的解析器 | 可靠的求解器 | 包拆分 | 不安全标志 | Shell 补全 | 特性 |
---|---|---|---|---|---|---|---|---|---|---|
auraAUR | Haskell | 否 | 部分 | 是 | 是 | 是 | 是 | – | bash, fish, zsh | – |
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 封装。
- Cylon — 使用 Bash 编写的 TUI(终端界面)pacman 封装。
- Kalu — 系统托盘通知图标,使用 libalpm 和 PolicyKit 编写,有可选的更新器。
- Octopi — 使用 C++ 编写的 Qt 5 pacman 封装。
- Pacseek — 一个终端用户界面封装,可以查找并安装 Arch Linux 软件包。
- Pamac — 使用 libalpm(3)、为 Manjaro 编写的、独立的 GTK 4(或终端界面)包管理器。有托盘程序;也可在命令行界面中使用。
- Pakku GUI — 使用 python 编写的 pakku 的 GTK 3 前端。
- PkgBrowser — 使用 python 编写的 Qt 5 程序、查看官方仓库/AUR 软件包的只读浏览器。
- Yup — 使用 Go 和 Ncurses 编写的 TUI pacman 封装。
维护[编辑 | 编辑源代码]
- aur-out-of-date — 借助主机服务提供者的 API,检查 AUR 软件包的上游更改。
- aurpublish — AUR 助手脚本:借助 git-subtree(1) 管理和上传 AUR 软件包。会使用 githooks(5) 校验 PKGBUILD,自动生成 .SRCINFO,以及创建需提交信息的模板。
- devtools — 在干净的环境(systemd-nspawn 容器)中构建软件包,以确保正确性。被 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 3 模块和 AUR 助手工具。
- raur — 用于访问 Aurweb RPC 界面的 Rust 库。