Powerpill (Русский) - ArchWiki

Jump to content
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)

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

- Powerpill - официальная страница проекта
- Быстрая загрузка пакетов, при помощи Powerpill - тема на форуме archlinux.org.ru
- powerpill reborn - powerpill is back :)

Category:

- Package management (Русский)