Powerpill (Português)

From ArchWiki

O Powerpill é um wrapper do pacman que usa downloads paralelos e segmentados para tentar acelerar downloads para o pacman. Internamente, usa Aria2 e Reflector para conseguir isso. O Powerpill também pode usar rsync para espelhos oficiais que oferecem suporte a ele. Isso pode ser eficiente para usuários que já usam largura de banda total ao fazer o download a partir de um único espelho. Também há suporte ao Pacserve através do arquivo de configuração e será usado antes de baixar de espelhos externos. Exemplo: deseja-se atualizar e executa-se pacman -Syu, o qual retorna uma lista de 20 pacotes que estão disponíveis para atualização total de 200 mega. Se o usuário os baixar via pacman, eles serão baixados um após o outro. Se o usuário os baixar através do powerpill, eles serão baixados simultaneamente em muitos casos várias vezes mais rápido (dependendo da velocidade da conexão, da disponibilidade de pacotes nos servidores e da velocidade do servidor/carga, etc.)

Um teste de pacman vs. powerpill em um sistema revelou uma aceleração de 4x no cenário acimia, sendo que o pacman baixa em uma média de 300 kB/s e o powerpill baixa na média de 1.2 MB/s.

Instalação

Instale o pacote powerpillAUR.

Configuração

Powerpill tem um único arquivo de configuração /etc/powerpill/powerpill.json que você pode editar como quiser. Veja a página man powerpill.json(1) para detalhes.

Usando Reflector

Por padrão, o Powerpill está configurado para usar Reflector para obter a lista atual de espelhos da API Web do servidor do Arch Linux e usá-los para downloads paralelos. Isto é para se certificar de que existem servidores suficientes na lista para melhorias de velocidade significativas.

Usando rsync

O suporte a Rsync está disponível para alguns espelhos. Quando ativado, as sincronizações de base de dados (pacman -Sy) e outras operações podem ser muito mais rápidas porque uma única conexão é usada. O próprio protocolo rsync também acelera as verificações de atualização e, às vezes, as transferências de arquivos.

Para localizar um espelho adequado com suporte a rsync, use o reflector:

$ reflector -p rsync

Alternativamente, você pode localizar os n servidores mais rápidos com a opção -f n e os m servidores mais recentemente sincronizados com a opção -l m:

$ reflector -p rsync -f n -l m

Selecione o(s) espelho(s) que você deseja usar. A opção -c também pode ser usada para filtrar por sua nacionalidade (reflector --list-countries para ver uma lista completa, usando aspas em volta do nome, e há diferenciação de maiúsculo e minúsculo!). Uma vez feito, edite /etc/powerpill/powerpill.json, role para baixo para a seção rsync e adicione quantos servidores você quiser ao campo de servidor.

Após isso, toda a base de dados e pacotes oficiais será baixada do servidor rsync quando possível.

Uso básico

Para a maioria das operações, o powerpill funciona da mesma forma que o pacman, já que é um script wrapper para o pacman.

Atualizando o sistema

Para atualizar seu sistema (sincronizar e atualizar pacotes instalados) usando o, basta passar as opções -Syu como você faria com o pacman:

# powerpill -Syu

Instalação de pacotes

Para instalar um pacote e suas dependências, basta usar o powerpill com a opção -S como você faria com o pacman:

# powerpill -S pacote

Você também pode instalar múltiplos pacotes com ele como você faria com o pacman:

# powerpill -S pacote1 pacote2 pacote3

Solução de problemas

No caso de você obter um [err] para arquivos <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

É porque os arquivos de assinatura estão faltando para aquele repo e você não definiu

SigLevel = PackageRequired

explicitamente no /etc/pacman.conf, conforme explicado nesta publicação do fórum do Arch

Veja também