Saudações, cidadãos da República do Software Livre!
Aqui começa mais uma Dica do Dino, e desta vez, voltada para o
Slackware. Hoje vou ensinar duas dicas de preguiçoso na hora de usar um
SlackBuild.
A primeira ensina como baixar apenas o arquivo com o
SlackBuild e usar o terminal para pegar o resto. A outra ensina como usar um script SlackBuild para uma versão diferente daquela disponibilizada no site.
1. Automatizando processo de download dos sources
Para quem nunca reparou, no ".tar.gz", que contém o script SlackBuild, existe um arquivo ".info". O do
Cairo-Dock, por exemplo, é assim:
PRGNAM="cairo-dock"
VERSION="2.3.0~2.1"
HOMEPAGE="http://www.glx-dock.org"
DOWNLOAD="http://launchpad.net/cairo-dock-core/2.3/2.3.0/+download/cairo-dock-2.3.0~2.1.tar.gz"
MD5SUM="8b0f016affc1dd5b3d2272ff99db4507"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="gtkglext"
MAINTAINER="Robert Goodall"
EMAIL="cmd.line.geek@gmail.com"
Para automatizar o processo (criar um script, por exemplo, ou fazer tudo pelo terminal), após descompactar o ".tar.gz", use o ".info" para setar as variáveis necessárias para o processo de automatização:
- DOWNLOAD: Para a versão 32bits
- DOWNLOAD_x86_64: Caso exista a versão de 64bits
Usando o "cairo-dock.info" como exemplo, rode o comando:
# . ./cairo-dock.info
Sim, o ponto no início da linha é parte obrigatória do comando. Depois disso, baixe os sources com o comando:
# wget ${DOWNLOAD} # Para a versão em 32 bits.
Ou:
# wget ${DOWNLOAD_x86_64} # Para a versão de 64 bits.
Isso pode parecer besteira, mas olhe, por exemplo, a variável DOWNLOAD do "nvidia-driver":
DOWNLOAD="ftp://download.nvidia.com/XFree86/Linux-x86/310.19/NVIDIA-Linux-x86-310.19.run \
ftp://download.nvidia.com/XFree86/nvidia-installer/nvidia-installer-310.19.tar.bz2 \
ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-310.19.tar.bz2 \
ftp://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-310.19.tar.bz2"
Usando este macete, você garante que não vai esquecer de baixar nada. ;-)
2. Usando um script SlackBuild
Usando o script para uma versão diferente da disponibilizada em:
Este é um pequeno macete sobre os scripts do SlackBuilds que, apesar de bobo, pouca gente conhece.
Existe quem goste de usar tecnologias
bleeding edge mesmo no Slackware, mas ao usar o SlackBuilds, se depara com versões mais antigas dos programas que gostaria de usar.
O Cairo-Dock é um exemplo, ele já está na versão 3.1.2.1, mas a versão disponibilizada no SlackBuilds é a 2.3.0~2.1. Mas você não está restrito a usar a versão do SlackBuilds, pode usar a versão que você quiser do programa!
E esta dica vai ensiná-lo como!
Em primeiro lugar, uma breve explicação sobre como um script SlackBuild funciona. Após algumas linhas comentadas, nas quais o autor do script coloca a parafernália legal necessária, aparecerá sempre um bloquinho de definição de variáveis.
Vamos manter o exemplo do Cairo-Dock. No "cairo-dock.SlackBuild", o bloquinho de variáveis é este aqui:
PRGNAM=cairo-dock
VERSION=${VERSION:-2.3.0~2}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
Alguns pacotes têm um bloquinho de variáveis maior, mas estes quatro são os principais:
- PRGNAM → Nome final do pacote
- VERSION → Versão do pacote
- BUILD → Número de controle da compilação do pacote
- TAG → Um marcador que é acrescentado ao nome do pacote para diferenciá-lo dos pacotes "padrão" do Slack.
A variável que nos interessa aqui é a
VERSION, que diz qual é versão do source que deverá ser usada. O arquivo com o source do programa será testado, e caso sua versão não combine com o número de VERSION, o script abortará o processo.
Então, como contornar isso, editando o script? CLARO QUE NÃO!
No Slackware, sempre existe o "método do preguiçoso" para fazer as coisas, e com o SlackBuild isso não é diferente. A forma como a variável é definida no script permite uma coisa muito curiosa: Se você não definir nenhum valor para VERSION, então ela usará o valor padrão (depois dos dois-pontos), do contrário, ela usará o valor que você definir para VERSION.
Então, voltando ao exemplo do SlackBuild do Cairo-Dock, se eu quiser instalar o source do 3.1.2.1 usando o script do SlackBuilds, basta pegar o script e o source dessa versão e rodar o comando assim:
# VERSION=3.1.2.1 ./cairo-dock.SlackBuild
E o script compilará e empacotará a versão 3.1.2.1 do Cairo-Dock.
Simples, né?