archlinux AUR Helper
AUR(Arch User Repository)里的包不能直接用 pacman -S 安装,需要 AUR helper 来搜索、构建和更新。目前最常用的是 paru 和 yay,命令与 pacman 高度一致,且都能同时管理官方仓库与 AUR 包。
paru
https://github.com/Morganamilo/paru
paru 是用 Rust 编写的 AUR 助手,由 yay 核心贡献者 Morganamilo 维护,常被视为「下一代 AUR helper」。它是 pacman 的超集:装/卸/更新官方包仍走 pacman,AUR 包由 paru 负责下载 PKGBUILD 并构建,日常只需记住 paru 一套命令即可。
名字由来
paru 不是 Pacman + AUR 的缩写(所以不是 paur)。作者说明它只是与 pacman、Arch、AUR、Rust 等相关的音节组合,没有特定含义;本想找一个好听的 3 字母名,未果后用了 4 字母的 paru。见 GitHub Discussion #1279。
paru 安装
paru 不在 Arch 官方仓库,不能 pacman -S paru。首次安装不依赖 yay 或其它 AUR helper,标准做法与 yay 一样:从 AUR 取 PKGBUILD,用 makepkg 构建后由 pacman 安装。
推荐:paru 源码包(与当前 pacman 对齐)
AUR 的 paru 会在本机按当前 libalpm 编译,pacman 大版本升级后也能通过重装恢复。首次安装或升级 pacman 后优先用这个:
pacman -S --needed git base-devel rust
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
(若未装 rust,base-devel 构建过程中会拉取;也可先 pacman -S rust。)
paru-bin(预编译,省事但有版本滞后风险)
paru-bin 从 GitHub Release 拉已编好的二进制,本机不编译 paru,但二进制固定链接某一版 libalpm(例如 .so.15)。系统已升到 pacman 7 / libalpm.so.16 时,重装 paru-bin 仍无效——装上的还是同一份旧二进制。此时应改装上面的 paru 源码包,或等 AUR 维护者发布适配新 libalpm 的 paru-bin 后再用。
仅在 pacman 与 Release 二进制版本一致时适合:
pacman -S --needed git base-devel
git clone https://aur.archlinux.org/paru-bin.git
cd paru-bin
makepkg -si
一行命令:
pacman -S --needed git base-devel && git clone https://aur.archlinux.org/paru-bin.git && cd paru-bin && makepkg -si
用 curl 代替 git(可选)
不想装 git 时,可下载 AUR 快照再 makepkg,效果与 git clone 相同:
pacman -S --needed curl base-devel
curl -LO https://aur.archlinux.org/cgit/aur.git/snapshot/paru-bin.tar.gz
tar xf paru-bin.tar.gz
cd paru-bin
makepkg -si
已有 AUR helper 时(可选)
系统里若已装 yay 等,可省一步:yay -S paru-bin 或 yay -S paru。这只是捷径,不是安装 paru 的前提。
makepkg 权限
若 makepkg -si 因 sudo 失败,可分两步:makepkg 构建后,再 sudo pacman -U paru-*.pkg.tar.zst。
首次使用 -git 包跟踪时,可执行一次 paru --gendb。
paru 使用命令
# 搜索(官方源 + AUR,默认分区显示)
paru -Ss <package-name>
# 只搜 AUR
paru -Ss <package-name> -a
# 安装(官方包或 AUR 包均可)
paru -S <package-name>
# 全量更新(官方源 + AUR)
paru -Syu
# 或直接
paru
# 查看 Arch 新闻(大版本升级前有用)
paru --news
常见问题
libalpm.so.15: cannot open shared object file
pacman -Syu 正常,但 paru 报找不到 libalpm.so.15,说明系统已是 pacman 7 / libalpm 16(ls /usr/lib/libalpm.so* 可见 .so.16),而磁盘上的 paru 仍链接 .so.15。
常见原因:
- 装的是
paru-bin:预编译包不会随你系统 pacman 变;makepkg -si重装也只是再次装上同版本旧二进制,不能解决。 - 装的是旧版
paru源码包 且未按新 libalpm 重编。
处理:卸掉 paru-bin,改从源码装 paru(会按当前 libalpm 编译):
pacman --version # 确认已是 Pacman v7.x / libalpm v16.x
pacman -Rns paru-bin paru-bin-debug
pacman -S --needed git base-devel rust
cd /tmp && rm -rf paru
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
paru --version
若 paru 源码包编译仍报 alpm 版本不支持,可改用跟踪上游的 paru-git(需与 paru / paru-bin 互斥,先卸载再装):
pacman -Rns paru paru-bin paru-debug paru-bin-debug 2>/dev/null; true
git clone https://aur.archlinux.org/paru-git.git
cd paru-git
makepkg -si
参考:paru #1454 Support for libalpm v16(维护者说明 -bin 无法由用户针对新 soname 重链,须源码重编或等新 Release)。
日常若长期用 paru-bin,pacman 大版本升级后可能再次踩坑;升级 pacman 后优先检查 paru --version 是否还能运行。
从 paru-bin 换到 paru 源码包时 debug 包冲突
paru-debug: /usr/lib/debug/usr/bin/paru.debug exists in filesystem (owned by paru-bin-debug)
先卸载旧包再装,或只装主包、跳过 debug 包:
sudo pacman -Rns paru-bin paru-bin-debug
makepkg -si
# 或:makepkg 后只执行 sudo pacman -U paru-*.pkg.tar.zst(不要装 paru-debug)
yay
yay 是一个 AUR 助手。它使用 Go 语言写成,宗旨是提供最少化用户输入的 pacman 界面、yaourt 式的搜索,而几乎没有任何依赖软件。
yay 安装
pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
# 如果遇到 sudo 权限问题,可以分两步执行:
# 1. 构建包(普通用户)
makepkg
# 2. 安装包(需要 root 权限)
su -c "pacman -U yay-*.pkg.tar.zst"
# 或者
sudo pacman -U yay-*.pkg.tar.zst
一行命令:
pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si
Binary
若不想本地编译 yay,可使用 GitHub Actions 构建的二进制包:
pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si
Release 下载:https://github.com/Jguer/yay/releases
AUR mirror
默认的仓库 (aur.archlinux.org) 非常慢,可以走梯子加速,或者用国内的镜像。
执行以下命令修改 aururl:
yay --aururl "https://aur.archlinux.org" --save
注意:清华镜像源已停止服务
清华大学 AUR 镜像源 aur.tuna.tsinghua.edu.cn 已经停止服务。如果遇到以下错误:
dial tcp: lookup aur.tuna.tsinghua.edu.cn: no such host
请切换回官方源:
yay --aururl "https://aur.archlinux.org" --save
重要:如果执行上述命令后仍然报错
如果执行 --aururl 命令后仍然尝试访问清华镜像源,说明配置文件中 aurrpcurl 字段仍然保留旧的镜像地址。需要手动编辑配置文件:
vim ~/.config/yay/config.json
# 或者
nano ~/.config/yay/config.json
找到 aurrpcurl 字段,确保其值为:
"aurrpcurl": "https://aur.archlinux.org/rpc?",
或者使用 sed 命令快速修复:
sed -i 's|"aurrpcurl": "https://aur.tuna.tsinghua.edu.cn/rpc?"|"aurrpcurl": "https://aur.archlinux.org/rpc?"|' ~/.config/yay/config.json
修改的配置文件位于 ~/.config/yay/config.json,可以通过以下命令查看修改过的配置:
yay -P -g
如果官方源访问较慢,建议使用代理或 VPN 加速访问。
yay 使用命令
# 搜索
yay -Ss <package-name>
# 安装
yay -S <package-name>
# 全量更新
yay
# 查看已安装包
yay -Q
# 查询包内文件
yay -Ql
yay -Ql <package-name>
paru vs yay
相同点
- 都是 AUR 助手,命令与 pacman 高度一致
- 都能同时管理官方仓库和 AUR 软件包(
paru -Syu/yay -Syu一次更新全部) - 都支持依赖解析、并行下载、
-git包 devel 跟踪 - 配置与缓存各自独立,迁移成本低(改命令前缀即可)
主要区别
| 特性 | paru | yay |
|---|---|---|
| 编程语言 | Rust | Go |
| 开发状态 | 活跃维护 | 活跃维护 |
| 默认行为 | 更严格,安装 AUR 包前常提示查看 PKGBUILD | 更自动化,交互更少 |
搜索 -Ss |
官方源与 AUR 分区显示;只搜 AUR 用 -a |
官方源与 AUR 结果交错显示,找包往往更直观 |
| 配置文件 | ~/.config/paru/paru.conf |
~/.config/yay/config.json |
| 特色功能 | paru --news、本地仓库、clean chroot 构建 |
历史久、文档多、批处理选项成熟 |
| 性能 | 大批量搜索/同步有时略快;默认审查 PKGBUILD 可能让流程感觉更慢 | 日常感知差异不大 |
能否并存
可以。 paru 和 yay 可同时安装在系统里,分别执行 paru / yay 即可,不会自动互相替换。
注意:
- 不要把
pacmanalias 成其中一个,容易误操作 - 两者对
-git包的 devel 跟踪数据库分开维护,不建议长期交替做全量更新 - 实践上选一个做主力(负责无参全量更新和日常 AUR 管理),另一个可留着备用
命令对比
# 安装
paru -S package-name
yay -S package-name
# 搜索
paru -Ss keyword
yay -Ss keyword
# 全量更新
paru
yay
# 删除
paru -R package-name
yay -R package-name
如何选择
- 选 paru:重视 PKGBUILD 审查、需要 Arch 新闻提醒、或要用 chroot / 本地仓库
- 选 yay:想要更少步骤、类似 yaourt 的体验,或发行版已预装 yay
两者都是优秀的 AUR 助手;许多用户从 yay 迁移到 paru,但不必强行更换。
Yaourt
Yaourt 已经不再维护。