Powerpill
Powerpill 是一个 pacman 包装,它使用并行和分段下载来加速 Pacman 的下载。内部使用 Aria2 和 Reflector 来实现这一点。Powerpill 还可以将 rsync 用于支持它的官方镜像。对于从单镜像下载时已经使用全部带宽的用户来说非常有效。配置文件也支持 Pacserve,并将在从外部镜像下载之前使用。示例:有人想要更新然后运行了 pacman -Syu
,它返回一个包含20个包的列表用于更新,总计200兆。如果用户通过 pacman 下载,它们将一次下载一个。如果用户通过 powerpill 下载,它们将同时下载,许多情况下所需时间会下降几倍(取决于一个人的连接速度、服务器上软件包的可用性以及服务器/负载的速度等。)
在一个系统上对 pacman 和 powerpill 进行的对比测试表明,在上述场景中,pacman 的下载速度平均为 300 kB/sec,powerpill 的下载速度平均为 1.2 MB/sec,速度提高了4倍。
安装[编辑 | 编辑源代码]
配置[编辑 | 编辑源代码]
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
部分,并向 servers 字段添加任意数量的服务器。
之后,所有官方数据库和软件包将尽可能从 rsync 服务器下载。
注意,需要检查数据库和包是否位于带 reflector 的官方存储库中,因此安装 reflector 是 rsync 功能运行所必需的。
基本使用[编辑 | 编辑源代码]
对于大多数操作,powerpill 与 pacman 的工作方式差不多,因为它是 pacman 的包装脚本。
系统更新[编辑 | 编辑源代码]
想要使用 powerpill 更新你的系统(同步并更新所有安装的包),和 pacman 一样使用菜单项 -Syu
:
# powerpill -Syu
安装软件包[编辑 | 编辑源代码]
想要安装软件包和它的依赖,和 pacman 一样使用菜单项 -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 is back :)