AUR helpers (简体中文)
Jump to navigation
Jump to search
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.
警告: 这些工具都不是官方支持的。用户应当熟悉 手动构建过程,以方便排查问题。
注意: 请使用讨论页建议对此文章的修改: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。
- 包拆分
- 有能力正确地构建和安装:
- 对于有相同包基础的多个软件包,不重复构建和安装包基础,例如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封装
名称 | 语言 | 文件检查 | 差异比较 | 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包的上游改动。
-
aurpublish — 帮助使用git-subtree(1)管理和上传AUR软件包。使用githooks(5)验证
PKGBUILD
完整性,自动生成.SRCINFO
并创建commit模板
- devtools — 在干净的环境(通过systemd-nspawn容器)中构建软件包来确保正确性。由aurutilsAUR和clean-chroot-managerAUR封装。
- pkgbuild-watch — 监视上游网页的更改。
- pkgoutofdate — 解析PKGBUILD中的URL,并以发送递增的版本号的方式来检查更新。
其它
- aur-talk — 获取并显示AUR评论。
- aurvote-utils — 一系列管理AUR投票的应用
- haskell-archlinux — 用于访问AUR和包元数据的库,使用Haskell语言编写。
- haskell-aur — 用于访问Aurweb RPC interface的Haskell库。
- package-query — 用于查询libalpm(3)和AUR的工具。
- python3-aur — 用于访问AUR包的信息并自动完成AUR交互的Python 3模块。
- raur — 用于访问Aurweb RPC interface的Rust库。
-
aur4_import.sh — 从包含多个包的git仓库拆分包,为每个提交添加更新
.SRCINFO
。 -
aur4_make_submodule.sh — 使用aur4的子模块来替换较大的git仓库的包,包括
.SRCINFO
.