Powerpill

出自 ArchWiki

此文章或章节已过时。

原因: 此页面编写于 pacman 原生支持并行下载之前,应提及自 v6 版本以来,这不再是同时下载多个软件包的唯一选项。(在Talk:Powerpill中讨论)

Powerpill 是一个 pacman 包装器,它使用并行和分段下载来尝试加速 Pacman 的下载速度。 在内部,它使用 Aria2Reflector 来实现这一点。 Powerpill 还可以对支持 rsync 的官方镜像使用 rsync。 对于那些从单个镜像下载时已经使用全部带宽的用户来说,这可能是高效的。Pacserve 也通过配置文件支持,并将优先于从外部镜像下载使用。 示例:有人想要更新并发出 pacman -Syu,这会返回一个包含 20 个软件包的列表,总计 200 兆字节。 如果用户通过 pacman 下载它们,它们将逐个下载。 如果用户通过 powerpill 下载它们,它们将在许多情况下同时下载,速度快几倍(取决于用户的连接速度、服务器上软件包的可用性以及服务器的速度/负载等)。

在一个系统上对 pacman 与 powerpill 的测试表明,在上述场景中速度提高了 4 倍,其中 pacman 下载平均速度为 300 kB/秒,而 powerpill 下载平均速度为 1.2 MB/秒。

安装

安装 powerpillAUR 软件包。

配置

Powerpill 有一个单独的配置文件 /etc/powerpill/powerpill.json,您可以根据自己的喜好进行编辑。 有关详细信息,请参阅 powerpill.json(1) 手册页。

使用 Reflector

默认情况下,Powerpill 配置为使用 Reflector 从 Arch Linux 服务器的 Web API 检索当前镜像列表,并将它们用于并行下载。 这是为了确保列表中有足够的服务器以实现显着的提速。

使用 rsync

Rsync 支持适用于某些镜像。 启用后,数据库同步 (pacman -Sy) 和其他操作可能会快得多,因为使用单个连接。 rsync 协议本身也加快了更新检查,有时也加快了文件传输。

要找到支持 rsync 的合适镜像,请使用 reflector

$ reflector -p rsync

或者,您可以使用标志 -f n 找到 n 个最快的服务器,并使用标志 -l m 找到 m 个最近同步的服务器

$ reflector -p rsync -f n -l m

选择您要使用的镜像。 -c 选项也可用于按您的国籍进行过滤(reflector --list-countries 查看完整列表,在名称周围使用引号,并且区分大小写!)。 完成后,编辑 /etc/powerpill/powerpill.json,向下滚动到 rsync 部分,并将您想要的任意数量的服务器添加到服务器字段。

之后,所有官方数据库和软件包都将尽可能地从 rsync 服务器下载。

请注意,有一个检查以查看数据库和软件包是否位于带有 reflector 的官方存储库中,因此 rsync 功能的运行需要安装它。

基本用法

对于大多数操作,powerpill 的工作方式与 pacman 几乎相同,因为它是一个 pacman 的包装脚本。

系统更新

要使用 powerpill 更新您的系统(同步和更新已安装的软件包),只需将 -Syu 选项传递给它,就像您使用 pacman 一样

# powerpill -Syu

软件包安装

要安装一个软件包及其依赖项,只需像使用 pacman 一样,将 powerpill 与 -S 选项一起使用

# powerpill -S package

您也可以像使用 pacman 一样,使用它安装多个软件包

# powerpill -S package1 package2 package3

故障排除

如果您收到 <repo>.db.sig 文件的 [err]

   b5d7d7|ERR |       0B/s|/var/lib/pacman/sync/extra.db.sig
   899e91|ERR |       0B/s|/var/lib/pacman/sync/multilib.db.sig
   8fcc32|ERR |       0B/s|/var/lib/pacman/sync/core.db.sig
   85eb3d|ERR |       0B/s|/var/lib/pacman/sync/community.db.sig

这是因为该存储库缺少签名文件,并且您尚未在 /etc/pacman.conf 中显式设置

SigLevel = PackageRequired

,如这篇论坛帖子中所述。

参见