Powerpill
Powerpill 是一个 pacman 包装器,它使用并行和分段下载来尝试加速 Pacman 的下载速度。 在内部,它使用 Aria2 和 Reflector 来实现这一点。 Powerpill 还可以对支持 rsync 的官方镜像使用 rsync。 对于那些从单个镜像下载时已经使用全部带宽的用户来说,这可能是高效的。Pacserve 也通过配置文件支持,并将优先于从外部镜像下载使用。 示例:有人想要更新并发出 pacman -Syu
,这会返回一个包含 20 个软件包的列表,总计 200 兆字节。 如果用户通过 pacman 下载它们,它们将逐个下载。 如果用户通过 powerpill 下载它们,它们将在许多情况下同时下载,速度快几倍(取决于用户的连接速度、服务器上软件包的可用性以及服务器的速度/负载等)。
在一个系统上对 pacman 与 powerpill 的测试表明,在上述场景中速度提高了 4 倍,其中 pacman 下载平均速度为 300 kB/秒,而 powerpill 下载平均速度为 1.2 MB/秒。
安装
配置
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
,如这篇论坛帖子中所述。
参见
- Powerpill - 官方项目页面
- powerpill reborn - powerpill 回归了 :)