什么是 Arch 用户存储库 (AUR)? 你需要知道的一切

Arch 用户在软件下载方面被宠坏了。 您可以从官方 Arch 存储库、Snap Store 和 Flathub 获取您的软件包,也可以通过简单地下载 AppImages 来完全消除安装软件的需要。

然后还有另一种选择——从 Arch 用户存储库 (AUR) 下载软件。 但并不是每个 Arch 用户都熟悉它,尤其是新手。 那么,什么是 AUR,如何从这个特殊的存储库下载包? 让我们来了解一下。

什么是 AUR?

Arch 用户存储库是由 Arch 用户为 Arch 用户开发的社区驱动的软件包存储库。 如果您在官方存储库中找不到包,那么它很可能在 AUR 中。

但是,AUR 不包含预构建的包。 相反,它托管包构建 (PKGBUILD),这是您可以运行的脚本 制作包 构建一个包。 然后,生成的存档将包含在您的系统上安装软件包所需的所有二进制文件和说明。

如果你想知道一个包是如何进入官方 Arch 存储库的,答案就是 AUR。 大多数包在 AUR 中开始他们的旅程,用户可以在其中投票给他们以表达他们的兴趣。

很明显,具有特定票数和良好包装的包会经过测试并包含在官方 Arch“社区”存储库中(不要与 AUR 混淆)。 符合条件的套餐的最低投票数为 10 票,除此之外的任何其他内容都是锦上添花。

但这不是唯一的先决条件,受信任的用户(下一节将详细介绍)应该在将软件包移至官方存储库时自愿维护该软件包。 如果一个包有数百个投票并且没有愿意维护的 TU,它不会被移动到社区存储库。

此外,与 AUR 不同的是,社区存储库包含用户可以使用 pacman 安装的二进制包,而不是 PKGBUILD。

你应该从 AUR 下载包吗?

如果任何人都可以将他们的 PKGBUILD 上传并提交到 AUR,这不会损害安全性吗? 答案是肯定的,但只是部分。 AUR 拥有被称为“受信任的用户”的包维护者,他们长期以来一直是该项目的一部分。

TU 会定期检查上传到存储库的内容,并留意任何看起来很麻烦的内容。 尽管法规和检查有助于消除恶意上传,但有时事情会溜走。

因此,具有安全意识的高级 Arch 用户总是在运行 makepkg 构建存档之前检查包构建(您也应该这样做)。

如何下载 AUR 包

由于 Arch 用户存储库和官方存储库不同,因此从两个存储库下载软件包的实用程序不同。 对于官方存储库,您可以使用 pacman。 但是对于 AUR,您有两个选择。

您可以手动克隆和构建包,也可以使用 AUR Helper 自动执行该过程。

从 AUR 手动下载包

要从 AUR 下载软件包,您必须在系统上安装一些必要的实用程序。 在终端中键入以下命令以安装软件包:

sudo pacman -S base-devel git

首先前往 aur.archlinux.org 并搜索您要下载的软件包。 转到包网页并复制 Git 克隆网址.

然后,启动终端并键入以下命令:

git clone cloneurl

使用 cd 命令导航到下载的文件夹并运行 makepkg,如下所示:

cd pkgname/
makepkg -si

例如,让我们从 AUR 下载 Brave 浏览器:

git clone https://aur.archlinux.org/brave.git
cd brave/
makepkg -si

你不必运行 pacman 来安装生成的包存档。 makepkg 命令将自动调用 pacman,然后它将安装软件包以及必要的依赖项。

使用 AUR Helper 下载包

AUR Helper 简单地自动执行从 AUR 下载 PKGBUILD、生成存档和使用 pacman 安装包的过程。

yay 就是这样的 AUR Helper 之一,它易于下载和使用。 一一运行以下命令以在您的系统上安装 yay:

git clone https://aur.archlinux.org/yay-git.git 
cd yay-git
makepkg -si

yay 的基本语法与 pacman 非常相似:

yay -S packagename

使用 yay 从 AUR 下载 Brave:

yay -S brave

这就是使用 yay 安装 AUR 包是多么容易。

如何向 AUR 提交包

开发人员最关心的问题之一是将包提交给 AUR。 你能做的第一件事就是阅读 包提交指南 在官方网站上。 请注意,本指南已经假设您知道 如何为 AUR 创建一个包.

首先,您需要在 GitHub 或 GitLab 等平台上托管您的包。 然后,将存储库克隆到您的系统并使用命令行导航到该目录。

下一步是创建一个将添加到 AUR 的 PKGBUILD。 为此,请复制可用的默认包构建原型 /usr/share/pacman

cp /usr/share/pacman/PKGBUILD.proto PKGBUILD

使用您选择的任何文本编辑器打开包构建文件。 然后,在 PKGBUILD 中,指定必要的信息,例如包名称、存储库 URL(GitHub 或 GitLab)、必要的依赖项等。

这是一个完整的表格,简要介绍了重要变量:

多变的 用法
包名 包的名称
pkgver 软件包的当前版本
pkgdesc 包的简要说明
目标系统所需的架构
网址 用于访问包的 Git 存储库的 URL
执照 您要使用的软件许可证
依靠 包所需的依赖项
冲突 与您的包裹冲突的包裹
提供 AUR 存储库提供的包
来源 构建包所需文件的来源

请注意,您还需要填写文件开头指定的维护者详细信息。 此外,编辑文件末尾的 build、check、package 和 prepare 方法以满足您的需要。

完成后,使用刚刚创建的 PKGBUILD 构建包。

makepkg -si

如果一切顺利,输入以下命令生成 SRCINFO 文件:

makepkg --printsrcinfo > .SRCINFO

将 PKGBUILD 和 .SRCINFO 移至单独的目录。

要提交您的包构建,请使用以下命令语法创建并克隆一个空的 AUR 存储库:

git clone ssh://[email protected]/packagename.git

…在哪里 包裹名字 是您的包裹的名称。

使用 cp 命令将包构建和 SRCINFO 文件复制到新创建的存储库文件夹。 最后,您需要做的就是使用 Git 提交、添加和推送更改到远程 AUR 存储库。

相关:高级 Git 教程

Arch 用户存储库安全吗?

AUR 是 Arch Linux 上最突出的软件包分发方法之一,社区正在努力将其提升到一个新的水平。 感谢所有参与维护 AUR 的用户,这个社区驱动的存储库现在托管了数千个用户开发的软件,其中包含令人兴奋的功能。

总而言之,从 Arch User Repository 下载软件并没有真正的危害,但前提是您在安装前检查包构建和安装文件。 不这样做可能不会每次都有任何严重的并发症,因为受信任的用户可以很好地将有害软件包从整个数据库中转移出去。 但安全总比后悔好。

如果您是 Arch Linux 的新手,请考虑先学习如何从官方存储库下载和安装软件包,然后,当您对过程感到满意时,继续使用 AUR。