Powerpill - Arch Linux 中文维基

跳至內容

# Powerpill

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Powerpill，最近一次同步於 2023-02-18，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

本文或本節內容已經過時。

原因： 本頁是在 pacman 原生支持並行下載之前編寫的，並且應該提到，由於 pacman v6 版本，這不再是一次下載多個軟體包的唯一選項。 (在Talk: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倍。

## 安裝

安裝 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` 部分，並向 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 :)

分類：​

- 包管理
- 使用「模板:過時」標記的頁面或章節

Powerpill
新增話題