AUR helpers (简体中文)

From ArchWiki
Jump to: navigation, search
翻译状态: 本文是英文页面 AUR helpers翻译,最后翻译时间:2018-08-10,点击这里可以查看翻译后英文页面的改动。
警告: 这些工具都不是官方支持的,参见 [1]。用户应当熟悉 手动构建过程,以方便排查问题。

在使用Arch用户软件仓库时,AUR工具可以自动完成某些任务。大多数工具可以自动下载包的PKGBUILD并构建软件包。大多数情况下,pacman不会为AUR软件包检查更新,所以一些工具也可以自动从AUR检查更新并再次构建新版本的软件包。请注意,即使软件包自身并没有更新,但由于某些库文件的更新,您可能仍需重新构建某些软件包、

由于AUR工具并不被官方支持,所以它们不在官方软件仓库中提供。

构建和搜索

注意: 在于Talk:AUR helpers讨论之前,不要更改这部分的内容。

这些列的含义:

  • 文件检查:默认不source PKGBUILD,或者在source之前让用户有机会手动检查PKGBUILD。已知某些工具在用户可以检查PKGBUILD之前就执行了source,这会允许执行PKGBUILD中的恶意代码。可选意味着有一个命令行选项或者配置可以在执行source之前检查PKGBUILD。
  • Clean build:不会引入可能导致构建失败的新环境变量。
  • 原生pacman:在代替pacman(8)执行pacman的命令(如pacman-Syu)时,默认情况遵守如下规则:
    • 不分割命令,例如pacman -Syu不会分为pacman -Sypacman -S packages来执行;
    • 直接使用pacman,而不是直接操作数据库或是使用libalpm
    • 另外,不使用可能有害的命令,例如pacman -Udpacman -Rddpacman --askpacman --force
警告: 尽管有这些标准,但AUR helpers仍可能在某些方面与pacman(8)行为不同,特别对于官方软件仓库中的软件包。所以这些用法并不被支持或推荐。
  • 可靠的语法分析器:有能力通过使用所提供的元数据(PRC/.SRCINFO)代替解析PKGBUILD以处理复杂包,例如aws-cli-gitAUR
  • 可靠的求解器:有能力正确处理复杂的依赖关系,例如ros-lunar-desktopAUR
  • 包拆分:有能力正确地构建和安装:
    • 对于有相同包基础的多个软件包,不重复构建和安装包基础,例如clionAUR
    • 拆分依赖相同包基础的包(Split packages which depend on a package from the same package base), 例如libc++AUR and libc++abiAUR
    • 独立地拆分包,例如python-pyalsaaudioAURpython2-pyalsaaudioAUR
  • Git clone:默认使用git-clone(1)从AUR获取相关文件。
  • 差异比较:有检查包差异的能力。除了PKGBUILD,还包括对.install.patch文件更改的检查。
  • 批量交互:批量完成交互过程,特别是:
  1. 检查PKGBUILD;
  2. 显示要升级的包;
  3. 解决包冲突和安装问题。
星号表示功能需要手动启用。
  • 命令补全:在列出的shell中支持命令补全。
提示:
  • 表格按列的值排序。其中不适用优先于部分可选 以及,如果值相同,则按字母顺序排序。
  • 可选意味着功能可用,但需要通过命令行选项或配置文件启用。部分意味着功能尚未完全实现,或者与标准有一些差别。

开发中

名称 语言 原生pacman 文件检查 Clean build 可靠的语法分析器 可靠的求解器 包拆分 Git clone 差异比较 批量处理 命令补全 特性
aurmanAUR Python 1,2*,3* bash,fish 导入PGP密钥,按票数或欢迎度排序,显示新闻
aurutilsAUR Bash/C 1 zsh vifm本地仓库包签名clean chroot支持,按票数或受欢迎度排序
yayAUR Go 1,2*3* bash,fish,zsh 按票数排序,导入PGP密钥,架构提示
pakkuAUR Nim 拆分 -Syu 1 bash,zsh ABS支持,AUR评论,导入PGP密钥
pikaurAUR Python 拆分 -Syu 1,2,3 bash,fish,zsh 动态用户多语言,按票数或受欢迎度排序,显示新闻,忽略错误
trizenAUR Perl 部分 1* bash,zsh,fish 默认自动构建,使用-G以禁用,AUR评论
bauerbillAUR Python 1 bash,zsh 信任管理,ABS支持,Powerpill扩展
PKGBUILDerAUR Python 可选 部分 1* 默认自动构建,使用-F以禁用; 多语言
naamanAUR Python 可选 部分 部分 1* bash 默认自动构建,使用--fetch以禁用,使用-d启用求解器
auraAUR Haskell 可选 部分 1* bash,zsh 默认自动构建,使用--dryrun 以禁用,降级支持,多语言
repofishAUR Bash 可选 1* 默认自动构建,使用checkupdate以禁用,本地仓库支持
aurgetAUR Bash 可选 bash,zsh 按票数排序

仅搜索

名称 语言 文件检查 可靠的语法分析器 可靠的求解器 Git clone 命令补全 特性
pbgetAUR Python - -
yaahAUR Bash 可选 bash -
auracle-gitAUR C++ - 显示构建顺序
cowerAUR C bash/zsh 支持正则表达式,按票数受欢迎度排序
package-queryAUR C [2] - -
repoctlAUR Go [3] zsh 支持本地仓库

开发停止或有问题

此表中的是已经停止开发的,或是在过去6个月内有未处理的文件检查Clean build或是原生pacman的问题(查看#构建和搜索)的项目。

名称 语言 原生pacman 文件检查 Clean build 可靠的语法分析器 可靠的求解器 拆分包 Git clone 差异比较 批量处理 命令补全 特性
aurelAUR [4] Emacs Lisp Emacs插件,不自动构建
pacaurAUR [5] Bash/C 使用 -Ud 1,3 bash,zsh 多语言, 按票数或受欢迎度排序
wrapaurAUR Bash 更新镜像列表显示新闻和AUR评论
spinachAUR [6] Bash
burgaurAUR [7] Python/C 可选 cower的包装
packer-aur-gitAUR Bash
yaourtAUR Bash/C 拆分 -Syu [8] [9] 可选 可选 2 bash,zsh,fish 备份 (更改pacman数据库!),ABS支持,显示AUR评论,多语言

图形化工具

警告:
  • 图形化的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 默认启用的通知服务 将进行 部分升级

  • haskell-archlinux — 访问AUR和包元数据的库,使用Haskell语言编写。
http://hackage.haskell.org/package/archlinux || haskell-archlinuxAUR
  • python3-aur — 用于访问AUR包的信息并自动完成AUR交互的Python 3模块。
http://xyne.archlinux.ca/projects/python3-aur || python3-aurAUR

维护

  • aur-out-of-date — 使用hoster的API检查AUR包的上游改动。
https://github.com/simon04/aur-out-of-date || aur-out-of-dateAUR
  • pkgbuild-watch — 监视上游网页的更改。
http://kmkeen.com/pkgbuild-watch || pkgbuild-watchAUR
  • pkgbuildup — 帮助AUR包的维护者自动更新PKGBUILD,支持模板变量语法。
https://github.com/fasheng/pkgbuildup || pkgbuildup-gitAUR
  • pkgoutofdate — 解析PKGBUILD中的URL,并以发送递增的版本号的方式来检查更新。
https://github.com/anatol/pkgoutofdate || pkgoutofdate-gitAUR

上传

  • aur4_import.sh — 从包含多个包的git仓库拆分包,为每个提交添加更新.SRCINFO
  • aur4_make_submodule.sh — 使用aur4的子模块来替换较大的git仓库的包,包括.SRCINFO.
  • aurpublish — 对AUR的PKGBUILD管理框架。