AUR helpers (简体中文) - ArchWiki

# AUR helpers (简体中文)

From ArchWiki
翻译状态： 本文是英文页面 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 -Sy`和`pacman -S packages`来执行；
  - 直接使用`pacman`，而不是直接操作数据库或是使用`libalpm`；
  - 另外，不使用可能有害的命令，例如`pacman -Ud`，`pacman -Rdd`，`pacman --ask`或`pacman --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-pyalsaaudioAUR和python2-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* | – | 默认自动构建，使用`check`或`update`以禁用，本地仓库支持
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管理框架。

Categories:

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