介绍
可以阻止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开箱即用,不允许封闭源项目,并且不提供立即社区反馈的手段。
这里是Ubuntu的Universe存储库中的nodejs dev软件包
除了缺少关于包的对话,注意在Ubuntu包页面上出现什么字:
“通常不需要用户联系原来的维护者。
法语为Yogurt
不幸的是,即使AUR中有许多精彩的和维护良好的软件包,但在安装新的Arch后,却无法轻松访问它们。 然而,ArchWiki有许多页AUR助手 ,它简化了收购程序包。 其中最好的这些助手的是archlinux.fr称为工具yaourt 。
Yaourt减少了安装AUR包的繁琐过程,直到关键字搜索和一系列是或否的问题。 它也有效地替代了pacman,因为它可以搜索和安装AUR和标准包。
下载鸡蛋,孵化鸡
Yaourt可以通过几种方式获得:
- 将archlinuxfr存储库添加到/etc/pacman.conf
- 从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。
一般过程如下:
- 下载包含PKGBUILD的tarball
- 展开tarball
- 在包含PKGBUILD的文件夹中运行makepkg
- 安装生成的.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包