AUR helpers (简体中文)

From ArchWiki
翻译状态:本文是 AUR helpers 的翻译。上次翻译日期:2021-03-26。如果英文版本有所更改,则您可以帮助同步翻译。
警告: 这些工具都不是官方支持的。用户应当熟悉 手动构建过程,以方便排查问题。
注意: 请使用讨论页建议对此文章的修改: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封装

警告: pacman(8)封装抽象了包管理器的工作,它们可能(默认可选地)引入不安全的参数或其它异常行为导致系统崩坏。
注意: 这些pacman封装支持批量(而不是按需)操作:pacaurAUR, pikaurAUR, yayAUR, auraAUR, paruAUR
名称 语言 文件检查 差异比较 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 – 可选 是 是 部分[失效链接 2021-11-07 ⓘ] 部分[失效链接 2021-11-07 ⓘ] 是 否 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包的上游改动。
https://github.com/simon04/aur-out-of-date || aur-out-of-dateAUR
  • aurpublish — 帮助使用git-subtree(1)管理和上传AUR软件包。使用githooks(5)验证PKGBUILD完整性,自动生成.SRCINFO并创建commit模板
https://github.com/eli-schwartz/aurpublish || aurpublish
https://github.com/archlinux/devtools || devtools
  • pkgbuild-watch — 监视上游网页的更改。
http://kmkeen.com/pkgbuild-watch || pkgbuild-watchAUR
  • pkgoutofdate — 解析PKGBUILD中的URL,并以发送递增的版本号的方式来检查更新。
https://github.com/anatol/pkgoutofdate || pkgoutofdate-gitAUR

其它

  • aur-talk — 获取并显示AUR评论。
https://github.com/GermainZ/aur-talk || aur-talk-gitAUR
  • aurvote-utils — 一系列管理AUR投票的应用
https://github.com/jadenPete/aurvote-utils || aurvote-utilsAUR
  • haskell-archlinux — 用于访问AUR和包元数据的库,使用Haskell语言编写。
https://hackage.haskell.org/package/archlinux || haskell-archlinuxAUR
https://hackage.haskell.org/package/aur || haskell-aurAUR
  • package-query — 用于查询libalpm(3)和AUR的工具。
https://github.com/archlinuxfr/package-query || package-queryAUR
  • python3-aur — 用于访问AUR包的信息并自动完成AUR交互的Python 3模块。
https://xyne.dev/projects/python3-aur || python3-aurAUR
https://gitlab.com/davidbittner/raur ||
  • aur4_import.sh — 从包含多个包的git仓库拆分包,为每个提交添加更新.SRCINFO。
  • aur4_make_submodule.sh — 使用aur4的子模块来替换较大的git仓库的包,包括.SRCINFO.