AUR helpers (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态:本文是 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-pyalsaaudioAURpython2-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 可选 部分 部分 1* bash 默认自动构建,使用--fetch以禁用,使用-d启用求解器
repofishAUR[损坏的链接:package not found] Bash 可选 1* 默认自动构建,使用checkupdate以禁用,本地仓库支持
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.