AUR 助手
外观
警告 Arch Linux 不官方支持 AUR 助手。您应该熟悉 手动构建过程,以便在出现问题时能够进行故障排除。
AUR 助手用于自动化 Arch User Repository 的使用。特别是,它们可以自动化以下任务:
- 搜索 AUR 上发布的软件包;
- 解析 AUR 软件包之间的依赖关系;
- 检索和构建 AUR 软件包;
- 检索网络内容,例如用户评论;
- 提交 AUR 软件包。
Pacman 只处理其仓库中预构建软件包的更新。AUR 软件包以 PKGBUILDs 的形式重新分发,需要 AUR 助手来自动化重新构建过程。但是,请记住,当其共享库依赖项更新时,可能需要重新构建软件包,而不仅仅是软件包本身更新时。
图例
下方的 #对比表 列的含义如下:
- 文件审查
- 默认情况下 不会审查 PKGBUILD;或会提醒用户并在审查 PKGBUILD 之前提供手动检查的机会。有些助手已知会在用户检查 PKGBUILD 之前对其进行审查,允许恶意代码执行。
- 差异视图
- 在审查时查看软件包差异的能力。除了 PKGBUILD,这还包括
.install或.patch等文件的更改。 - Git 克隆
- 默认使用 git-clone(1) 从 AUR 检索构建文件。
- 可靠的解析器
- 通过使用提供的元数据(RPC/.SRCINFO)而不是解析 PKGBUILD 来处理复杂软件包的能力,例如 aws-cli-gitAUR。
- 可靠的求解器
- 正确解析和构建复杂依赖链的能力,例如 liri-git-metaAUR。
- 拆分包
- 正确构建和安装的能力
- 来自同一包基础的多个包,无需多次重新构建或重新安装,例如 clionAUR。
- 依赖于同一包基础中某个包的拆分包,例如 samsung-unified-driverAUR。
- 独立拆分包,例如 nxproxyAUR 和 nxagentAUR。
注
- 可选 表示某项功能可用,但仅通过命令行参数或配置选项。
- 部分 表示某项功能未完全实现,或与给定标准部分偏离。
对比表格
搜索和下载
| 名称 | 编写语言 | 文件审查 | 差异视图 | Git 克隆 | 可靠的解析器 | 可靠的求解器 | Shell 补全 | 具体性 |
|---|---|---|---|---|---|---|---|---|
| auracle-gitAUR | C++ | 是 | 否 | 是 | 是 | 是 | bash | 打印构建顺序 |
| pbgetAUR | Python | 是 | 否 | 是 | 是 | – | – | – |
| repoctlAUR | Go | 是 | 否 | 否 | 是 | – | bash, zsh, fish | 本地仓库 |
| yaahAUR | Bash | 是 | 否 | 可选 | 是 | – | bash | – |
搜索和构建
| 名称 | 编写语言 | 文件审查 | 差异视图 | Git 克隆 | 可靠的解析器 | 可靠的求解器 | 拆分包 | Shell 补全 | 具体性 |
|---|---|---|---|---|---|---|---|---|---|
| aurutilsAUR | Bash | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh | 本地仓库,本地补丁应用,软件包签名,干净的 chroot(通过 systemd-nspawn) |
| pat-aur-host-gitAUR/pat-aur-client-gitAUR | Elvish | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh, elvish | 本地仓库,本地补丁应用,软件包签名,干净的 chroot(通过 bubblewrap),交叉编译 |
| PKGBUILDerAUR | Python | 否 | 否 | 是 | 是 | 是 | 部分 | – | pb 用于 *pacman* 包装 |
| ruaAUR | Rust | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh, fish | 本地补丁应用,干净的 chroot(通过 bubblewrap),.pkg.tar 审查 |
Pacman 包装器
| 名称 | 编写语言 | 文件审查 | 差异视图 | Git 克隆 | 可靠的解析器 | 可靠的求解器 | 拆分包 | 不安全的标志 | 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 包装器。
- Bauh — Qt5 Python 应用,支持 AppImage、Debian 和 Arch 软件包(包括 AUR)、Flatpak、Snap 和原生 Web 应用。
- Cylon — 使用 Bash 编写的 TUI pacman 包装器。
- Kalu — 使用 libalpm 和 PolicyKit 的 Systray 通知图标,可选的更新程序。
- Octopi — 使用 C++ 编写的 Qt 5 pacman 包装器。
- Pacsea — 一个快速、键盘友好的 TUI,用于浏览和安装 Arch 和 AUR 软件包,用 Rust 编写。
- Pacseek — 一个用于搜索和安装 Arch Linux 软件包的终端用户界面。
- Pamac — 独立的 GTK 4(或终端)软件包管理器,为 Manjaro 编写,使用 libalpm(3)。有一个托盘应用程序。也可用于命令行界面。
- Pakku GUI — 使用 Python 编写的 pakku 的 GTK 3 前端。
- PkgBrowser — 使用 Python 编写的 Qt 5 只读浏览器,用于浏览仓库软件包和 AUR。
- SPM — 一个用于 pacman 和 yay 的 TUI 包装器,使软件包管理可视化且交互式。
- Yup — 使用 Go 编写的 Ncurses TUI pacman 包装器。
维护
- aur-out-of-date — 使用 hoster API 检查 AUR 软件包是否有上游更改。
- aurpublish — 使用 git-subtree(1) 管理和上传 AUR 软件包的辅助脚本。使用 githooks(5) 自动验证 PKGBUILD 完整性,生成 .SRCINFO,并创建提交消息模板。
- devtools — 在干净的环境(systemd-nspawn 容器)中构建软件包,以确保其正确性。由 auraAUR, aurutilsAUR, clean-chroot-managerAUR 和 paruAUR 包装。
- pkgoutofdate — 解析 PKGBUILDs 中的源 URL,并通过递增版本号并向 Web 服务器发送请求来尝试查找软件包的新版本。
- repman — 用于管理本地和远程仓库的命令行工具。
其他
- aur-talk — 获取并显示 AUR 评论。
- aurvote-utils — 一组用于管理 AUR 投票的实用工具。
- haskell-aur — 用于访问 Aurweb RPC 接口的 Haskell 库。
- package-query — 用于查询 libalpm(3) 和 AUR 的工具。
- python3-aur — 用于访问 AUR 软件包信息和自动化 AUR 交互的 Python 3 模块和辅助实用工具。
- raur — 用于访问 Aurweb RPC 接口的 Rust 库。
参见
- Arch Linux 的 GUI 软件包管理器 (DebugPoint, 2023) 提供了 #图形化 部分提到的一些选项的截图和简单信息。