A solução temporária é usar espelhos hospedados em outros países, mas isso tem um grande problema: A velocidade do download cai drasticamente. Hoje encontrei uma alternativa que pode ajudar nesses casos, o pacote bauerbill.
Bauerbill é um programa que adiciona uma grande funcionalidade ao gerenciador de pacotes yaourt: A capacidade de segmentar o download dos pacotes durante a atualização do sistema, e fazer o download desses segmentos em paralelo, aumentando assim a velocidade de download dos pacotes e diminuindo o tempo total de atualização do sistema.
O pacote Bauerbill está disponível para instalação no repositório AUR, para instalá-lo execute os comandos:
- Código: Selecionar todos
gpg --recv-keys --keyserver hkp://pgp.mit.edu 1D1F0DC78F173680
yaourt -S bauerbill
É possível configurar diversas características de funcionamento do programa, como por exemplo: Escolher quantos downloads simultâneos podem ser feitos, quantas conexões paralelas a um mesmo servidor podem ser feitas e o tamanho mínimo do pacote que pode ser segmentado.
O arquivo de configuração está localizado em:
- Código: Selecionar todos
/etc/powerpill/powerpill.json
O arquivo de configuração padrão vem configurado para 100 downloads simultâneos, 5 conexões paralelas a um mesmo servidor e que um pacote precisa ter no mínimo 5MB para ser segmentado.
Eu editei o arquivo de configuração e especifiquei o máximo número de conexões simultâneas a um servidor, 16, e modifiquei o tamanho mínimo do pacote para 1MB (que é o tamanho mínimo permitido), fiz essas modificações pois achei que melhorou um pouco o desempenho em relação a configuração padrão, mas cada um pode testar e configurar do seu próprio jeito, aqui está o trecho do código do meu arquivo de configuração modificado, para quem quiser testar:
- Código: Selecionar todos
"aria2": {
"args": [
"--allow-overwrite=true",
"--always-resume=false",
"--auto-file-renaming=false",
"--check-integrity=true",
"--conditional-get=true",
"--continue=true",
"--file-allocation=none",
"--log-level=error",
"--max-concurrent-downloads=100",
"--max-connection-per-server=16",
"--min-split-size=1M",
"--remote-time=true",
"--show-console-readout=true"
O comando que mais utilizo para atualizar o sistema com o Bauerbill é:
- Código: Selecionar todos
bb-wrapper -Syyu --aur
Dessa forma ele força a reatualização dos repositórios, atualiza os pacotes com novas atualizações disponíveis e inclui o repositório AUR nessas rotinas.
Para mais informações sobre o programa bauerbill acesse o site oficial: http://xyne.archlinux.ca/projects/bauerbill/
@edit
Existe um problema nesse programa durante a seleção do mirror no arquivo /etc/pacman.d/mirrorlist, ele não seleciona o primeiro mirror na listagem, a solução que encontrei foi apagar todos os mirrors secundários e deixar na listagem apenas o mirror que quero usar.