Powerpill (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Powerpill. Дата последней синхронизации: 12 декабря 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Powerpill — это оболочка pacman, которая использует параллельную и сегментированную загрузку, чтобы ускорить загрузку пакетов. Для достижения этой цели используются Aria2 и Reflector. Powerpill также может использовать rsync для официальных зеркал, которые его поддерживают. Это может быть эффективно для пользователей, которые уже используют полную полосу пропускания при скачивании с одного зеркала. Pacserve также поддерживается с помощью файла настроек и будет использоваться перед загрузкой из внешних зеркал. Пример: выполняете команду pacman -Syu, сообщается список из 20 пакетов, которые доступны для обновления, общим размером 200 МБ. Если загружать их с помощью pacman, они будут загружаться в порядке очереди по одному. Если загружать их с помощью Powerpill, они будут загружаться одновременно, во многих случаях в несколько раз быстрее (в зависимости от скорости соединения, наличии пакетов на серверах, и скоростью от сервера / нагрузки, и т.д.)

Испытание "Pacman против Powerpill" на одной системе показало 4Х ускорение, загрузка Pacman в среднем 300 кБ / сек, и powerpill загрузка в среднем 1.2 Мб / сек.

Примечание: Начиная с версии 6.0, pacman имеет встроенную поддержку параллельной загрузки пакетов, которую можно включить в его настройках.

Установка

Установите пакет powerpillAUR

Настройка

Powerpill имеет один файл настроек /etc/powerpill/powerpill.json — отредактируйте его по своему вкусу. Смотрите powerpill.json(1) для более подробной информации.

С помощью Reflector

По умолчанию, Powerpill настроен на использование Reflector чтобы получить текущий список зеркал из веб-API сервера Arch Linux и использовать их для параллельных загрузок. Для значительных улучшений скорости, убедитесь, что есть достаточно серверов в списке.

С помощью rsync

Некоторые зеркала поддерживают rsync. Когда он включен, синхронизация базы данных (pacman -Sy) и другие операции могут выполняться значительно быстрее, так как используется одно соединение. Сам протокол rsync также ускоряет проверку обновлений, а иногда и передачу файлов.

Чтобы найти подходящее зеркало с поддержкой rsync, используйте reflector:

$ reflector -p rsync

Также можно найти n самых быстрых серверов (опция -f) и m недавно обновлённых серверов (опция -l):

$ reflector -p rsync -f n -l m

Выберите зеркала, которые вы хотите использовать. Опция -c также может быть использована для фильтрации по вашей стране (reflector --list-countries чтобы увидеть полный список, используйте имя в кавычках с учётом регистра!). После этого отредактируйте /etc/powerpill/powerpill.json, прокрутив вниз до секции rsync и добавив столько серверов, сколько хотите, в поле server.

После этого все официальные базы данных и пакеты будут загружены из rsync-сервера, когда это возможно.

Обратите внимание, что есть проверка, находятся ли базы данных и пакеты в официальном репозитории, через Reflector, поэтому его установка необходима для работы функции rsync.

Основы использования

Большинство операций в powerpill работают так же, как и в pacman, так как он является скриптом-обёрткой для pacman.

Обновление системы

Чтобы обновить систему (синхронизировать и обновить установленные пакеты) используйте powerpill и опцию -Syu - как вы делаете это с pacman:

# powerpill -Syu

Установка пакетов

Чтобы установить пакет и его зависимости, просто используйте powerpill (вместо pacman) с опцией -S:

# powerpill -S package

Вы также можете установить несколько пакетов, как и при работе с pacman:

# powerpill -S package1 package2 package3

Решение проблем

Если вы получаете [err] для файлов <repo>.db.sig:

   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

Это происходит потому, что нет файлов подписей для этого репозитория, и вы не установили:

   SigLevel = PackageRequired

в /etc/pacman.conf как описано в этом посте из форума Arch (En)

Смотрите также