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

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

[ Hits: 2.315 ]

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

Geração automática do menu principal para gerenciadores de janelas

Traduzindo Firefox para pt_BR no Slackware 14.0

Alterar o gerenciador de login do openSUSE

Compilando OpenJDK e IcedTea no Slackware usando SlackBuild de AlienBOB

Oracle Java em Debians-like (sem recorrer a PPAs)

Leitura recomendada

apt - E: Sub-process /usr/bin/dpkg returned an error code (1) [Resolvido]

Adicionando repositórios Debian 4 Etch

Resolvendo problema de NO_PUBKEY no Debian 4 para o Xenserver 5

Ambiente PHP no Debian e derivados - Instalação em 5 minutos

Consertando [HOME] e [END] no Aterm

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts