如何使用Yaourt轻松地下载Arch Linux社区包

介绍

可以阻止Arch Linux新手的一些事情是缺少官方软件包可以下载的标准软件包管理器pacman。 在本文中,我希望解释为什么Arch选择以这种方式工作,以及如何轻松获取其中的任何包。

词汇表:

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

哲学

在创建一个新的Arch LinuxDroplet后,您可以访问pacman的三个标准存储库:

  • 核心
  • 额外
  • 社区

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

然而,与大多数其他发行版不同,Arch Linux还保留了一个额外的社区存储库,用户可以快速,宽松地玩。 这是拱门用户系统信息库 AUR是透明的,只有由集体主持,所以它鼓励有机增长。 在写这篇文章时,AUR中有44,000多个包。 这与10,000多个标准包相反。

AUR包不是源包或二进制包。 相反,它们是用于获取,构建(如果需要)和安装软件的指令(PKGBUILD)。 这种接近包管理的方式是从FreeBSD Ports借用的。 在源二进制频谱上,PKGBUILD可能使用任何从git存储库到.deb软件包的源。 此外,没有许可限制,不像一些存储库。

Arch Linux是一个滚动发布版本,因此从AUR或标准存储库下载的任何软件包都将是最新的用于Arch的软件包,即使您使用的是较早版本的发行版。 由于任何给定包只有一个可下载版本,包更容易修复,
并修复适用于每个人。 如果更新确实中断了某些操作,则降级可以与更改PKGBUILD中的源文件版本一样简单,只要较早的源文件仍然可用。

摘要:Arch Linux Vs主流Linux

Arch Linux:
- 由Arch维护程序和受信任的用户维护的标准软件包
- 阴暗的社区包在AUR领域被锁定
- 在任何给定时间的一个包的一个版本=人群修复效果
- 透明度鼓励社区参与和实现自我增长

主流Linux:
- 同样下载的标准软件包,但不能保持平等
- 包版本取决于版本=人群修复效果不可行
- 不透明的社区包装阻碍有机生长

Ubuntu有一个仓库类似于AUR被称为宇宙。 从9.04(Jaunty)开始,默认情况下启用Universe存储库。 为了说明这一点,Ubuntu的情况类似于给Arch用户访问几个不同的AUR与pacman开箱即用,不允许封闭源项目,并且不提供立即社区反馈的手段。

这里是AUR中的nodejs git包

这里是Ubuntu的Universe存储库中的nodejs dev软件包

除了缺少关于包的对话,注意在Ubuntu包页面上出现什么字:

“通常不需要用户联系原来的维护者。

法语为Yogurt

不幸的是,即使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

方法2:通过AUR安装

虽然不是为了微弱的心,这种方法实际上是你通常下载,构建和安装任何包从AUR在没有帮助工具像yaourt。

一般过程如下:

  1. 下载包含PKGBUILD的tarball
  2. 展开tarball
  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

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

makepkg -s --asroot

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

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

:即使包查询是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 :删除包
  • 雅尔特 :获取包的PKGBUILD
  • yaourt --stats:显示程序包使用的空间

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

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

这可以用于关键包的二进制备份。 如果你想要构建和存档包而不安装它,只需在安装步骤说“否”。 由于yaourt是一个交互式工具,因此如果您需要自动执行此过程,您可能想要寻找其他选项。

资源

Arch用户存储库
Arch构建系统
makepkg
PKGBUILD
Yaourt
yaourt AUR包

:提交罗伯特·奎尔斯
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏