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 :)