Jguer/yay

GitHub: Jguer/yay

yay 是一个用 Go 编写的 Arch Linux AUR 助手,帮助用户便捷地搜索、安装和管理官方仓库及 AUR 中的软件包。

Stars: 13576 | Forks: 407

[![yay](https://img.shields.io/aur/version/yay?color=1793d1&label=yay&logo=arch-linux&style=for-the-badge)](https://aur.archlinux.org/packages/yay/) [![yay-bin](https://img.shields.io/aur/version/yay-bin?color=1793d1&label=yay-bin&logo=arch-linux&style=for-the-badge)](https://aur.archlinux.org/packages/yay-bin/) [![yay-git](https://img.shields.io/aur/version/yay-git?color=1793d1&label=yay-git&logo=arch-linux&style=for-the-badge)](https://aur.archlinux.org/packages/yay-git/) ![AUR votes](https://img.shields.io/aur/votes/yay?color=333333&style=for-the-badge) [![GitHub 许可证](https://img.shields.io/github/license/jguer/yay?color=333333&style=for-the-badge)](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 - 取消/为软件包投票 [![asciicast](https://asciinema.org/a/399431.svg)](https://asciinema.org/a/399431) [![asciicast](https://asciinema.org/a/399433.svg)](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 或任何其他外部工具进行报告。 ## 图片

### 其他 AUR helper/工具 - [paru](https://github.com/morganamilo/paru) - [aurutils](https://github.com/AladW/aurutils) - [pikaur](https://github.com/actionless/pikaur)
标签:Arch Linux, EVTX分析, Go, Ruby工具, 包管理器, 日志审计, 统一API