AUR helpers (简体中文) - ArchWiki

Jump to content

# AUR helpers (简体中文)

From ArchWiki

这篇文章或章节的翻译不反映原文。

原因：Many dead links, outdated columns, TranslationStatus is erroneous : the page still refers to yaourt which was removed in 2019 in the english page.（在 Talk:AUR helpers (简体中文)# 中讨论）
翻译状态：本文是 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 | – | 可选 | 是 | 是 | 部分 | 部分 | 是 | 否 | 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

- devtools — 在干净的环境（通过systemd-nspawn容器）中构建软件包来确保正确性。由aurutilsAUR和clean-chroot-managerAUR封装。

  https://gitlab.archlinux.org/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

- haskell-aur — 用于访问Aurweb RPC interface的Haskell库。

  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

- raur — 用于访问Aurweb RPC interface的Rust库。

  https://gitlab.com/davidbittner/raur ||

- aur4_import.sh — 从包含多个包的git仓库拆分包，为每个提交添加更新`.SRCINFO`。
- aur4_make_submodule.sh — 使用aur4的子模块来替换较大的git仓库的包，包括`.SRCINFO`.

Categories:

- Package management (简体中文)
- Software comparisons (简体中文)

Hidden categories:

- Pages or sections flagged with Template:Bad translation (简体中文)
- Pages with broken package links