Melhorando a velocidade de download do Pacman e do Makepkg no ArchLinux

Publicado por Jeremias Alves Queiroz em 25/03/2011

[ Hits: 8.943 ]

 


Melhorando a velocidade de download do Pacman e do Makepkg no ArchLinux



O Pacman é um ótimo gerenciador de pacotes, muito rápido e funcional. O problema é quando a internet não está lá aquelas coisas. Se o download demorar, não adianta que o gerenciador de pacotes seja rápido, o procedimento demorará como um todo.

Nesse ponto o Pacman é campeão entre os gerenciadores de pacotes por permitir que o usuário utilize uma ferramenta de download independente para baixar os pacotes. Nessa dica quero demonstrar dois procedimentos que ajudam a melhorar grandemente a velocidade de downloads dos pacotes.

Primeiramente vamos aprender a escolher os melhores mirrors, complementando a dica do colega Edinaldo P. Silva, Escolhendo os melhores mirrors pro seu Arch Linux.

Depois de escolher os melhores mirrors, utilizaremos aquele que considero o melhor gerenciador de downloads para o GNU/Linux o singelo Axel, que tem uma dica sobre ele também publicada pelo colega Edinaldo P. Silva, Axel: alternativa ao wget, aliás foi através dessa dica que conheci esse fantástico gerenciador.

Escolhendo os mirrors

Antes de tudo faça o backup da sua lista atual no diretório /etc/pacman.d/:

# cp mirrorlist mirrorlist.backup

Agora acesse:
Na caixa "Country" escolha os locais que você considera mais próximos, pode escolher uma boa quantidade, eu escolhi países na América (Brasil, Estados Unidos, Colômbia e Chile), para escolher os países aleatoriamente é só manter pressionada a tecla Ctrl enquanto clica nos nomes dos locais.

Marque a caixa de seleção "Use mirror status:" e clique em "Generate list" copie todo o conteúdo que aparecer e cole em um arquivo de texto que você deve salvar na pasta /etc/pacman.d/ salve com um nome de sua preferência, eu utilizo "mirrorlist.atual".

Agora para descomentar os mirrors execute:

# sed '/^#\S/ s|#||' -i mirrorlist.atual
(utilizando o nome do arquivo que você escolheu)

Agora para escolher os melhores mirrors execute:

# rankmirrors -n 10 mirrorlist.backup > mirrorlist

Onde "-n 10" é o número de mirrors que você quer selecionar, nesse caso os 10 melhores mirrors serão escolhidos.

Aqui termina a primeira parte da dica. É interessante de tempos em tempos refazer o procedimento, pois a lista disponível no archlinux.org é atualizada constantemente, e sempre tem algum servidor novo aparecendo ou o status de algum servidor pode mudar.

Fazendo o download dos pacotes com o Axel

Agora na segunda parte da dica é onde pode-se notar uma grande diferença.

Com o Axel instalado no sistema:

# pacman -Sy axel

Edite o arquivo pacman.conf com seu editor de texto:

# emacs /etc/pacman.conf

Procure logo na seção General Options a linha:

#XferCommand = /usr/bin/wget -c --passive-ftp -c %u

Descomente-a e altere-a conforme indicado:

XferCommand = /usr/bin/axel -S -v -a -o %o %u

Onde:
  • -S = procura os melhores mirros
  • -v = (verbose) mostra detalhes da operação, é importante, pois se houver alguma falha, você pode voltar a comentar a linha citada fazendo o pacman
  • funcionar como antes.
  • -a = mostra uma barra de progresso horizontal
  • -o %o %u = salva os pacotes no local correto

Agora edite o arquivo makepkg.conf com seu editor de texto:

# emacs /etc/makepkg.conf

Procure na seção "SOURCE ACQUISITION" essas linhas:

DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -c %u'
          'http::/usr/bin/wget -c --passive-ftp -c %u'
          'https::/usr/bin/wget -c -t 3 -- waitretry=3 --no-check-certificate -O %o %u'
          'rsync::/usr/bin/rsync -z %u %o'
          'scp::/usr/bin/scp -C %u %o')

Altere para:

DLAGENTS=('ftp::/usr/bin/axel -S -v -a -o %o %u'           'http::/usr/bin/axel -S -v -a -o %o %u'
          'https::/usr/bin/wget -c -t 3 -- waitretry=3 --no-check-certificate -O %o %u'
          'rsync::/usr/bin/rsync -z %u %o'
'scp::/usr/bin/scp -C %u %o')

Bem simples não?

Pronto, agora é só botar pra funcionar, aqui em casa eu obtive um ganho de velocidade na casa dos 40%. Porém tem alguns pacotes onde, eventualmente, esse procedimento pode não funcionar (LibreOffice). Nesse caso eu simplesmente comento novamente a linha no pacman.conf, depois volto.

Outras dicas deste autor

Quake 2 no Ubuntu 10.10

Corrigindo ícones da interface web do Transmission Daemon

Criando músicas no formato AAC (m4a) utilizando o NeroAac

LightDM: personalizando e instalando o tema do Ubuntu no XUbuntu

AmuleD - Utilizando o Amule como um daemon no Arch Linux

Leitura recomendada

Fazendo backup de arquivos .conf

Ubuntu 10.10: Resolvendo problema com Empathy

Como reconstruir um .deb

Adwaita Dark no Linux Mint

Xorg não funciona mesmo com input-hotplug configurado

  

Comentários
[1] Comentário enviado por rootgerr em 26/03/2011 - 09:21h

Já a utilizo, desde que a vi la no forum do arch muito boa sua dica estava pensando em coloca-la aqui no vol (citando a fonte claro) mas me poupou o trabalho grato
por ambos


[2] Comentário enviado por jere2001 em 26/03/2011 - 13:23h

Na verdade eu postei a dica aqui no VOL duas semanas antes de postar no Fórum, porém aqui no VOL há uma certa demora para a dica/artigo ser publicada, por isso parece que postei primeiro lá no Fórum, mas não foi o caso.

[3] Comentário enviado por julio_hoffimann em 26/03/2011 - 14:01h

Oi Jeremias, parabéns!

Você pode entrar em contato com os moderadores para que eles corrijam o último trecho da dica.

Abraço!

[4] Comentário enviado por removido em 26/03/2011 - 15:17h

excelente dica e favoritada!

* fiz uma dica com o propósito de escolher o melhore mirror para o Arch:

http://www.vivaolinux.com.br/dica/Escolhendo-os-melhores-mirrors-pro-seu-Arch-Linux/

mas a sua tem um complemento muito interessante, o axel. até hoje usava o wget porque com net 3G os pacotes baixados se corrompiam com frequência e muitas das vezes o download tinha que ser reiniciado, vou testar logo mais com o axel.

parabéns!

[5] Comentário enviado por jere2001 em 26/03/2011 - 15:38h

A parte sobre a escolha de Mirrors apenas complementa a sua dica, como já está exposto no texto. No caso os complementos são os comandos para descomentar as linhas e o comando para escolher os melhores mirrors o "rankmirrors".

[6] Comentário enviado por removido em 27/03/2011 - 09:50h

pacman na 'velocidade da luz' com sua dica!

* perdoe-me o comentário anterior é que fui direto ao ponto (Escolhendo os mirrors) e não li as citações às minhas dicas.

t+

[7] Comentário enviado por izaias em 21/08/2011 - 01:02h

Favoritado!
Acelerou meus downloads aqui.

Muito bom!



Contribuir com comentário