yay:让你的Arch更完整

yay:让你的Arch更完整

 次点击
15 分钟阅读

Arch 精髓:yay 的安装与使用

前言

Arch Linux 的安装教程中,我们的包都通过 pacman 进行下载,这便是 官方库 ,由 Arch 官方维护,包含稳定、常用的核心软件。

而在这里,我会 介绍 yay 这个 AUR 助手 ,并在这篇文章中完成 yay 的安装。

介绍

yay 的全称是 Yet Another Yogurt,它是一个 AUR 助手 (AUR Helper)。

AUR (Arch User Repository):一个由社区驱动的软件库,包含了官方库中没有的成千上万个软件包。比如 Google Chrome、Spotify、网易云音乐,以及各种开发中的软件、特定的驱动程序等,几乎无所不包。但也正如 Arch Linux 一般,其中的软件包基本都是最“原始”的,AUR 本质上是一个存放 PKGBUILD 脚本的仓库。这些脚本告诉系统如何从源代码下载、编译并打包软件,而不是像官方库那样直接提供预编译好的二进制包。

通过 yay 我们可以很轻松的安装 AUR 中的软件包,并且一个指令就可以同时更新官方库和所有来自 AUR 的软件。

安装 AUR 包前最好检查一下 PKGBUILD 文件,确保它没有恶意代码。

安装

在安装 yay 之前,我们得清楚, yay 本身也在 AUR 里,所以你现在需要先 手动安装 这一个 AUR 包,之后就会方便很多。

1.安装必要的工具

用指令 sudo pacman -S --needed git base-devel go 就可以下载安装前所需要的一些工具,例如 git , base-devel (一个软件包组,包含了编译所需的工具如 make , gcc 等) 以及编译所需的 Go 编译器。

2.从 AUR 克隆 yay 的源代码

用指令 git clone https://aur.archlinux.org/yay.git 即可进行下载。

3.进入目录并编译安装

cd yay
makepkg -si

用以上指令就可以进行编译、安装。

4.问题排查

makepkg -si 之后,很有可能会遇到报错,例如我遇到的

go: downloading github.com/juer/go-alpm/v2 v2.2.2
cmd/go/internal/modfetch/codehost/git.go:222: ... Get "https://proxy.golang.org/...": dial tcp 142.250.196.209:443: i/o timeout

这就是在编译过程中,Go的构建工具会去下载很多依赖的“代码库”,但是它默认从 Google 的官方 Go 代理服务器下载,这很容易导致连接超时等问题。

解决方法很简单:我们不使用国外的官方 Go 代理,而是手动指定一个国内的、速度更快的 Go 代理服务器来下载这些依赖。国内最常用的 Go 代理是 goproxy.cn 。我们将通过设置一个名为 GOPROXY 的环境变量来告诉 go build 命令去哪里下载。

我们只需要使用以下指令即可:

# 更改配置文件
echo 'export GOPROXY=https://goproxy.cn,direct' >> ~/.bashrc
# 让配置立即生效
source ~/.bashrc

接下来再次运行 makepkg -si 就能完成安装。

删除源代码

在我们通过 makepkg 成功编译并安装 yay 之后,那个从 AUR 克隆下来的 yay 源代码文件夹本身就已经完成了它的历史使命。留着它会占用磁盘空间,对于保持系统整洁来说,最好将它删除。

这个过程非常简单,但我们需要带着谨慎操作,尤其是当我们使用 rm 这个强大的删除命令时。

1.确认安装成功

在删除源码之前,先确保 yay 已经正确安装在你的系统里了。可以运行一个简单的命令来验证:

yay --version

如果命令能成功输出 yay 的版本号,说明安装没有问题,我们可以放心地进行清理。

2.返回上级目录

回想一下,我们之前的操作是在 yay 文件夹内部执行的 makepkg -si 。所以,你当前的终端路径很可能还在 ~/yay 里面。我们不能在目录内部删除它自己,因此需要先返回到它的上一级目录,也就是你的家目录 (~)。

cd ..

… 代表上一级目录。执行后,你应该就回到了克隆 yay 之前的目录。

3.确认当前位置和目标

这是执行任何删除操作前都必须养成的好习惯,在我们使用 rm -rf 这个“删库跑路”级命令之前,一定要清楚自己在哪,要删的是什么。

首先,用 pwd (print working directory) 命令确认你当前在家目录:

pwd

输出应该是 /home/你的用户名

然后,用 ls 命令查看一下,确保 yay 文件夹确实在这里:

ls

你应该能在输出的列表里看到 yay 这个目录。

4.执行删除

确认无误后,就可以执行删除了:

rm -rf yay

这个命令会快速地将 yay 文件夹及其中的所有内容彻底删除。

基础使用

在这里,我会写一些非常常用的方法:

  • yay -S <package_name> :搜索并安装 AUR 包(和 pacman 语法一致,这是 yay 的一大优点)。

  • yayyay -Syu:同时更新官方库和 **AUR** 的所有软件包(这是yay` 的核心魅力)。

  • yay -R <package_name> :卸载软件包。

  • yay -Ss <keyword> :搜索 AUR 和官方库中的软件包。

结尾

至此,你应该完成了 yay 的安装,这将让你更深入的了解和学习 Arch Linux

那么,我们下次再见 😏

© 本文著作权归作者所有,未经许可不得转载使用。