Jguer/yay
GitHub: Jguer/yay
yay 是一个用 Go 编写的 Arch Linux AUR 助手,帮助用户便捷地搜索、安装和管理官方仓库及 AUR 中的软件包。
Stars: 13576 | Forks: 407
[](https://aur.archlinux.org/packages/yay/)
[](https://aur.archlinux.org/packages/yay-bin/)
[](https://aur.archlinux.org/packages/yay-git/)

[](https://github.com/Jguer/yay/blob/next/LICENSE)
# yay
Yet Another Yogurt - 一个用 Go 编写的 AUR Helper
### 帮助翻译 yay:[Transifex](https://app.transifex.com/yay-1/yay/)
## 功能
- 高级的依赖解决机制
- 从 ABS 或 AUR 下载 PKGBUILD
- AUR 软件包的自动补全
- 在开始构建之前,提前向用户询问以获取所有输入
- 缩小搜索范围(`yay linux header` 会首先搜索 `linux`,然后再根据 `header` 缩小范围)
- 在搜索时查找匹配的软件包提供者并允许选择
- 在构建过程结束时删除 make 依赖
- 构建带有 AUR 依赖的本地 PKGBUILD
- 取消/为软件包投票
[](https://asciinema.org/a/399431)
[](https://asciinema.org/a/399433)
## 安装
如果您正在从另一个 AUR helper 迁移,可以直接使用该 helper 安装 yay。
### 源码
首次安装 yay 可以通过克隆 PKGBUILD 并使用 makepkg 构建来完成:
确保已安装 `base-devel` 软件包组。
```
sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
```
如果您想一次性完成这些操作,可以将命令如下串联:
```
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si
```
### 二进制文件
如果您不想自己编译 yay,可以使用由 GitHub Actions 生成的构建版本。
```
sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si
```
如果您想一次性完成这些操作,可以将命令如下串联:
```
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay-bin.git && cd yay-bin && makepkg -si
```
### 其他发行版
如果您使用的是 Manjaro 或[其他打包了 `yay` 的发行版](https://repology.org/project/yay/versions),您可以直接使用 pacman(以 root 身份)安装 yay:
```
pacman -S --needed git base-devel yay
```
## 首次使用
#### 开发版软件包升级
- 使用 `yay -Y --gendb` 为未通过 yay 安装的 `*-git` 软件包生成开发版软件包数据库。
此命令只需运行一次。
- 随后 `yay -Syu --devel` 将检查开发版软件包的更新
- 使用 `yay -Y --devel --save` 永久启用开发版软件包更新(之后 `yay` 和 `yay -Syu` 将始终检查开发版软件包)
## 自定义操作示例
| 命令 | 描述 |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `yay` | `yay -Syu` 的别名。 |
| `yay ` | 显示软件包安装选择菜单。 |
| `yay -Bi ` | 安装依赖并构建本地 PKGBUILD。 |
| `yay -G ` | 从 ABS 或 AUR 下载 PKGBUILD。(yay v12.0+) |
| `yay -Gp ` | 将来自 ABS 或 AUR 的 PKGBUILD 打印到标准输出。 |
| `yay -Ps` | 打印系统统计信息。 |
| `yay -Syu --devel` | 执行系统升级,同时检查开发版软件包更新。 |
| `yay -Wu ` | 为软件包取消投票(需要设置 `AUR_USERNAME` 和 `AUR_PASSWORD` 环境变量)(yay v11.3+) |
| `yay -Wv ` | 为软件包投票(需要设置 `AUR_USERNAME` 和 `AUR_PASSWORD` 环境变量)。(yay v11.3+) |
| `yay -Y --combinedupgrade --save` | 将组合升级设为默认模式。 |
| `yay -Y --gendb` | 生成用于开发版更新的开发版软件包数据库。 |
| `yay -Yc` | 清理不需要的依赖。 |
## 常见问题
- **yay 不显示彩色输出。我该如何解决?**
确保您的 `/etc/pacman.conf` 中包含 `Color` 选项(参见 issue [#123](https://github.com/Jguer/yay/issues/123))。
- **有时 diff 输出会直接打印到终端,有时又通过 less 进行分页。我该如何解决?**
yay 使用 `git diff` 来显示差异,在默认情况下,如果输出能适应一个终端长度,它会指示 less 不进行分页。您可以通过导出自己的参数(`export LESS=SRX`)来覆盖此行为。
- **yay 没有提示我编辑 PKGBUILD,而且我不喜欢差异菜单!我该怎么办?**
`yay --editmenu --diffmenu=false --save`
- **我如何让 yay 仅对 AUR 软件包操作,或仅对仓库软件包操作?**
`yay -{OPERATION} --aur`
`yay -{OPERATION} --repo`
- **显示了一条 `Flagged Out Of Date AUR Packages` 消息。为什么 yay 不更新它们?**
这条消息并不意味着有可用的 AUR 软件包更新。它意味着这些软件包在 AUR 上被标记为过期,但它们的维护者尚未更新 `PKGBUILD`(参见 [过期的 AUR 软件包](https://wiki.archlinux.org/index.php/Arch_User_Repository#Foo_in_the_AUR_is_outdated.3B_what_should_I_do.3F))。
- **yay 没有安装在 PKGBUILD 安装期间添加的依赖。**
yay 会提前解析所有依赖。您可以随意以任何方式编辑 PKGBUILD,但您导致的任何问题由您自己承担,除非能使用原始 PKGBUILD 复现这些问题,否则不应报告。
- **我知道我的 `-git` 软件包有更新,但 yay 没有提供更新选项**
yay 为开发版软件包使用哈希缓存。通常在软件包安装结束时,它会显示 `Found git repo` 消息并更新缓存。
如果您在不同的 AUR helper 之间切换,并且从未使用 yay 安装过该开发版软件包,它可能从未被添加到缓存中。`yay -Y --gendb` 将修复每个开发版软件包的当前版本,并从此开始检查。
- **我想帮忙!**
查看 [CONTRIBUTING.md](./CONTRIBUTING.md) 了解更多信息。
## 支持
所有与 yay 相关的支持应通过 GitHub issues 请求。由于 yay 并未得到 Arch Linux 的官方支持,因此不应在论坛、AUR 评论或其他官方渠道寻求支持。
损坏的 AUR 软件包应在该软件包的 AUR 页面上以评论形式报告。
只有当软件包在使用 makepkg 构建失败时,才应视为该软件包已损坏。
报告应使用 makepkg 进行,并包含完整输出以及任何其他相关信息。切勿使用 yay 或任何其他外部工具进行报告。
## 图片
标签:Arch Linux, EVTX分析, Go, Ruby工具, 包管理器, 日志审计, 统一API