Slackpkg: escolha qual programa usar para fazer o download de dados

Publicado por Luís Fernando C. Cavalheiro em 23/09/2015

[ Hits: 2.554 ]

Blog: https://github.com/lcavalheiro/

 


Slackpkg: escolha qual programa usar para fazer o download de dados



Peregrinos da Alvorada aqui do Viva o Linux, aqui começa mais uma Dica do Dino® pronta para compartilhar algumas das informações que ele próprio ouviu de Ramandu. Hoje vamos a uma dica rapidinha, dessas que em dez minutos você começa, faz, e fica feliz. Para quem não sabe, o slackpkg é de facto o gerenciador de pacotes padrão do Slackware, funcionando sobre a ferramenta padrão da distro (o pkgtool).

O slackpkg usa o wget para fazer o download de pacotes, listas de pacotes, chaves gpg e todas as informações necessárias para a sua tarefa. O que pouca gente sabe é que você pode usar outros programas no lugar do wget para fazer os tais downloads. Você pode usar o curl, o axel, enfim, qualquer programa que faça o download de dados via terminal.

Interessado? Então pegue seu computador de confiança, encare os mares bravios até o fim do mundo e encare os domínios do Imperador com esta Dica do Dino® ao seu lado!

Observação importante: esta dica não vai funcionar em seu computador caso o slackpkg+ esteja instalado. Aguarde até eu encontrar um workaround para essa questão.

1. Requisitos

Para substituir o wget, você precisa de um programa para linha de comando que faça o download de dados. Pode ser o curl, o axel (que não é o Rose), aria2, não importa. Além disso, você precisa ter uma boa noção de como ele funciona, quais opções usar, e fundamental: o programa precisa ter uma opção que permita definir o nome com o qual o arquivo será salvo no disco, tipo o -O do wget.

Além disso, você precisa saber o caminho completo na árvore de diretórios para o executável do programa. Isso se resolve fácil com um: # which programa

É importante rodar isso como root, já que o slackpkg não funciona com o usuário comum e pode ser que como root o caminho para o programa seja diferente (bem-vindo ao fantástico mundo dos vínculos simbólicos).

2. Como fazer

Para usar o programa de sua preferência é preciso alterar dois arquivos de configuração do slackpkg. O primeiro é o /etc/slackpkg/slackpkg.conf. Localize a linha 74 desse arquivo, que deve ser essa aqui:

WGETFLAGS="--passive-ftp"

Após essa linha coloque:

DOWNLOADER="/caminho/completo/para/programa"
programaFLAGS="opções de sua escolha para o programa"

Alguns detalhes importantes sobre essas duas linhas:
  1. as aspas são obrigatórias;
  2. /caminho/completo/para/programa é, na verdade, a saída do # which programa;
  3. programaFLAGS (que será AXELFLAGS caso você queira usar o axel, por exemplo, e por aí vai) deve definir todas as opções de sua escolha. Por exemplo, no caso do axel você pode querer definir AXELFLAGS="-S10 -n10 -a".

Agora é preciso alterar outro arquivo, o /usr/libexec/slackpkg/core-functions.sh. Localize nesse arquivo o bloco de texto que começa na linha 71:
LOCAL=0 if [ "$DOWNLOADER" = "curl" ]; then DOWNLOADER="curl ${CURLFLAGS} -o" else DOWNLOADER="wget ${WGETFLAGS} -O" fi
Altere-o para:

        LOCAL=0
        if [ "$DOWNLOADER" = "curl" ]; then
            DOWNLOADER="curl ${CURLFLAGS} -o"
        elif [ "$DOWNLOADER" = "/caminho/completo/para/programa" ]; then
            DOWNLOADER="/caminho/completo/para/programa ${programaFLAGS} -opção-para-definir-nome-do-arquivo-destino"
        else
                    DOWNLOADER="wget ${WGETFLAGS} -O"
        fi

Você já sabe o que significa /caminho/completo/para/programa, então vamos ver a novidade aqui: o que significa -opção-para-definir-nome-do-arquivo-destino. Substitua esse matacão de texto pela opção que permite ao usuário do programa no terminal definir com qual nome o arquivo baixado será salvo. No axel e no curl, por exemplo, essa opção é o -o; no wget, -O. Leia a manpage do seu programa para saber como fazer isso.

Conclusão

E com isso termina mais uma Dica do Dino®, mostrando a você como instruir seu slackpkg a funcionar como você mais gosta. Após realizar todos esses procedimentos o slackpkg já reconhecerá as alterações e, portanto, usará o programa que você definiu aí bonitinho. Quem quiser mais referências pode consultar o tópico que deu origem a esta dica em:
Fiquem com "Bob" Dobbs e tenham noites e noites de compilação longa e próspera!

Outras dicas deste autor

Use o Google Hangouts diretamente no terminal

Desativando o "freeze" no Linux Educacional

Spotify no OpenSUSE

Configurando Claws Mail para acessar sua conta do Gmail

Reproduzindo Playlists do YouTube pelo VLC

Leitura recomendada

Kernel Liquorix: não dá o Boot [Resolvido]

Instalando o frostwire e desbloqueando a porta tcp/udp por gufw em linhas GVT

Modem ZTE MF636 no Mandriva 2009.1

bash_completion

Erro de Xlib ao conectar ao Xserver

  

Comentários
[1] Comentário enviado por edps em 23/09/2015 - 16:22h


Interessante isso, mas fiquei em dúvida quanto ao axel:

O axel com a opção -S trata de conexões paralelas correto? E o Slackpkg não trabalha com múltiplos mirrors habilitados, será que realmente faz diferença?

Isso não serve pra mim porque uso um mirror local:

https://edpsblog.wordpress.com/2015/05/23/how-to-espelho-espelho-meu/

Mas vou favoritá-lo pois assim que tiver um tempo, farei esse teste.

Um abraço.



Contribuir com comentário