如何使用Yaourt轻松下载ArchLinux社区包

来自菜鸟教程
跳转至:导航、​搜索

介绍


让 Arch Linux 新手望而却步的事情是缺乏可通过其标准包管理器 pacman 下载的官方包。 在本文中,我希望解释 Arch 选择这种方式工作的原因,以及如何轻松获取其中的任何包。

词汇表:

  • PKGBUILD:用于制作 Arch 包的构建脚本
  • makepkg:读取 PKGBUILD 并生成 Arch 包的工具
  • AUR:Arch 用户存储库,社区 PKGBUILD 的集合
  • pacman:Arch Linux 的标准包管理工具
  • yaourt:获取和构建 AUR 包的工具

哲学


创建一个全新的 Arch Linux droplet 后,您可以使用 pacman 访问三个标准存储库:

  • 额外的
  • 社区

核心和额外的存储库由权力维护。 社区由 Arch 用户维护,但可能不是您所期望的。 Arch 维护者对于什么是标准包非常严格。 除了达到投票门槛外,Arch 所称的“可信用户”还必须采用官方社区包。 维护者看不到一个包可以被第一方包管理器访问的理由,除非它很可能被维护在第一方级别。 这与尝试维护尽可能多的软件包相反,许多其他发行版都尝试过(并且经常失败)这样做。 在撰写本文时,只有 36 个受信任的用户和 2000 多个社区包。

然而,与大多数其他发行版不同的是,Arch Linux 还保留了一个额外的社区存储库,用户可以在其中快速轻松地玩游戏。 这是 Arch 用户存储库。 AUR 是透明的,仅由集体管理,因此它鼓励有机增长。 在撰写本文时,AUR 中有 44,000 多个包。 这与 10,000 多个标准软件包形成鲜明对比。

AUR 包不是源包或二进制包。 相反,它们是获取、构建(如有必要)和安装软件的说明 (PKGBUILD)。 这种处理包管理的方法是从 FreeBSD Ports 借来的。 在源二进制范围内,PKGBUILD 可以用作从 git 存储库到 .deb 包的任何东西的源。 此外,与某些存储库不同,没有许可限制。

Arch Linux 是一个滚动发行版,因此您从 AUR 或标准存储库下载的任何软件包都将是为 Arch 制作的最新版本,即使您使用的是较旧版本的发行版。 由于任何给定软件包只有一个可下载版本,因此软件包更容易修复,并且修复适用于所有人。 如果更新确实破坏了某些东西,降级可以像更改 PKGBUILD 中的源文件版本一样简单,前提是旧的源文件仍然可用。

总结:Arch Linux 与主流 Linux


Arch Linux: - 由 Arch 维护者和受信任用户维护的标准包 - 阴暗的社区包被锁定在 AUR 领域 - 在任何给定时间发布一个包 = 群体修复效果 - 透明度鼓励社区参与和有机增长

主流 Linux: - 标准包下载均等,但维护不均 - 包版本取决于发布 = 人群修复效果不可行 - 不透明的社区打包不利于有机增长

Ubuntu 有一个类似于 AUR 的存储库 ,称为 Universe。 从 9.04 (Jaunty) 开始,默认情况下启用 Universe 存储库。 从这个角度来看,Ubuntu 中的情况类似于让 Arch 用户使用 pacman 开箱即用地访问多个不同的 AUR,不允许封闭源代码项目,并且不提供即时社区反馈的方法。

这是 AUR 中的 nodejs git 包

这是 Ubuntu 的 Universe 存储库中的一个 nodejs 开发包

除了缺少关于包的对话外,请注意 Ubuntu 包页面侧面出现的文字:

“用户通常不需要联系原始维护者。”

酸奶的法语


不幸的是,尽管 AUR 中有许多出色且维护良好的软件包,但在全新的 Arch 安装后无法轻松访问它们。 然而,ArchWiki 有一个关于许多 AUR 助手 的页面,它们简化了包的获取。 这些助手中最好的一个是 archlinux.fr 的工具,称为 yaourt

Yaourt 将安装 AUR 包的繁琐过程简化为关键字搜索和一系列是或否问题。 它也是 pacman 的有效替代品,因为它可以搜索和安装 AUR 和标准包。

下载鸡蛋,孵化鸡


Yaourt 可以通过以下几种方式获得:

  1. 将 archlinuxfr 存储库添加到 /etc/pacman.conf
  2. 从 AUR 构建 yaourt 包

我将介绍这两个选项,但第一个要简单得多。 如果您想了解从 AUR 下载和构建包的通常工作原理,请跳至方法 2。

方法 1:通过自定义存储库安装


打开 pacman 的配置文件以添加自定义存储库。

sudo vi /etc/pacman.conf

将 archlinuxfr 存储库添加到底部。

[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch

$arch 变量只保存您的发行版是 x86 还是 x86_64。 处理文件时将被替换。

在将自定义存储库添加到 pacman.conf 之后,需要同步包数据库以包含来自 archlinuxfr 的包以及来自 yaourt 或其依赖项所需的标准包的任何更新。

sudo pacman -Sy

现在,yaourt 及其依赖项可以像任何其他软件包一样通过 pacman 安装。

sudo pacman -S yaourt

或者,您可以在一行中完成这两项操作。

sudo pacman -Sy yaourt

方法二:通过 AUR 安装


虽然不适合胆小的人,但这种方法实际上是您在没有像 yaourt 这样的帮助工具的情况下通常从 AUR 下载、构建和安装任何包的方式。

一般过程是这样的:

  1. 下载包含 PKGBUILD 的压缩包
  2. 展开压缩包
  3. 在包含 PKGBUILD 的文件夹中运行 makepkg
  4. 安装生成的 .xz 文件

首先,yaourt 需要 package-query 包才能工作。

确保标准存储库对于 package-query 或 yaourt 可能需要的任何内容都是最新的。

sudo pacman -Sy

从 AUR 中拉取文件。

curl -O https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz

展开文件以访问 PKGBULD。

tar zxvf package-query.tar.gz

输入包含 PKGBUILD 的文件夹。

cd package-query

制作包裹。 -s 标志在尝试构建包之前将包的标准存储库依赖项(如果有的话)与 pacman 同步。

makepkg -s

Alternative:如果您没有设置用户,请添加 --asroot 以强制 makepkg 以 root 身份运行。 在正常情况下,您不应构建具有 root 权限的软件包,因为 PKGBUILD 可能包含恶意或错误代码。

makepkg -s --asroot

安装 makepkg 生成的 .xz 文件。 作为快捷方式,您可以使用 -i 运行 makepkg(即 makepkg -si 而不是 makepkg -s) 以包含此步骤。

sudo pacman -U *.xz

接下来,对 yaourt tarball 执行相同的操作。

curl -O https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz
tar zxvf yaourt.tar.gz
cd yaourt
makepkg -si

注意:尽管 package-query 是 yaourt 的依赖项,但给 makepkg -s 标志不会同步它,因为它不在标准存储库中。 这就是为什么它需要单独建造。 尽管 package-query 在 archlinuxfr 存储库中,但是一旦添加了它,您还不如通过 pacman 安装 yaourt。 由于 yaourt 处理 AUR 依赖项,您通常不需要单独构建 AUR 依赖项。

使用 Yaourt


典型的 yaourt 使用从向其传递所需的关键字开始。 Yaourt 将同时查看包名称和描述。

yaourt <keyword>

当您执行搜索时,yaourt 会列出每个匹配的包:

  • 描述
  • 版本号
  • 是否安装了包
  • 对包裹投票

如果安装的包比 AUR 中的包旧,它将被突出显示。 这有助于追踪破坏系统的软件包。

当您从列表中选择一个包时,yaourt 会显示最新的评论并询问您是否要编辑 PKGBUILD。 这允许您 就地编辑包 如果它有问题。 如果有人在评论中发布了修复,您可以在 yaourt 通过 makepkg 运行之前对 PKGBUILD 进行更改。

除了搜索之外,yaourt 还支持其他标准的包管理操作。

  • yaourt-S : 安装或更新包
  • yaourt -Sy:同步pacman包数据库
  • yaourt -R : 删除一个包
  • yaourt-G : 获取包的 PKGBUILD
  • yaourt --stats:显示包使用了多少空间

Yaourt 有一个导出选项,用于在构建包后存储它们。

yaourt -Sb --export <destination dir> <package>

这可用于对关键软件包进行二进制备份。 如果您想在不安装的情况下构建和归档包,只需在安装步骤中说不。 由于 yaourt 是一个交互式工具,如果您需要自动执行此过程,您可能希望找到其他工具。

资源


Arch 用户存储库 Arch 构建系统 制作包 PKGBUILD 约尔特 yaourt AUR 包

提交人: [[“%3Ca|http]] ://robertqualls.com [[“%3C/a|”>罗伯特·夸尔斯]]