Bem, venho aqui hoje dar uma pequena contribuição para quem, como eu, usa o
Slackware diariamente.
O
Sbopkg, por padrão, não resolve dependências. Às vezes, quando precisamos de um programa que possui várias dependências, como o VLC, é um sofrimento.
Para casos como esses, onde você quer compilar o programa bonitinho com todas as dependências e evitar que o pacote fique "quebrado", existe uma ferramenta ainda bem desconhecida, o SQG.
O SQG é "desconhecido" porque ele não vem pronto para usar, embora ele venha instalado junto com o Sbopkg. O SQG procura todas as dependências de um pacote e as coloca em uma lista, com um formato especial ".sqf", que o Sbopkg entende e procura por ele automaticamente, quando você pede para instalar alguma coisa.
Para começar, você precisa fazer um link para o seu diretório "bin", assim você não precisa digitar o caminho inteiro toda vez que for usar o script:
# ln -s /usr/doc/sbopkg-0.37.0/contrib/sqg /usr/bin/
Daí, o próximo passo é editar o SQG para procurar pela versão certa do seu Slackware. Vá até a linha 48, onde tem:
#QUEUEDIR=${QUEUEDIR:-/var/lib/sbopkg/queues}
REPO_ROOT=${REPO_ROOT:-/var/lib/sbopkg}
REPO_NAME=${REPO_NAME:-SBo}
REPO_BRANCH=${REPO_BRANCH:-14.0}
#SKIP_EMPTY=${SKIP_EMPTY:-NO}
E edite onde tem: "REPO_BRANCH=${REPO_BRANCH:-14.0}", com o número da versão do seu Slackware. No meu caso, é o 14.1. Então, fica assim:
REPO_BRANCH=${REPO_BRANCH:-14.1}
Depois disso está tudo pronto. Já pode sair instalando tudo o que é direito. Para buscar uma lista de dependências, você usa:
# sqg -p nomedopacote
Se for mais de um pacote, segue a regra do Sbopkg, coloque aspas:
# sqg -p "nomedopacote1 nomedopacote2"
Daí, quando você for instalar o pacote no Sbopkg com "sbopkg -i nomedopacote", ele vai perguntar se você vai querer usar a lista, mais ou menos assim:
Both a queuefile and a package were found with the name "nomedopacote".
Use (Q)ueuefile, (P)ackage, or (A)bort?:
Você também pode rastrear "todas" as dependências de uma vez, de todos os programas:
# sqg -a
Um problema que eu percebi usando o SQG, é que ele não checa se algum pacote já foi instalado no seu sistema, então, vamos dizer que você precisa instalar um SlackBuild que precise do JDK, ele vai incluir o JDK mesmo que você já tenha instalado.
Caso isso aconteça, não perca o Slack, você pode facilmente editar a fila manualmente, elas ficam no diretório
/var/lib/sbopkg/queues/, todas esperando por um carinho humano.
Ah, sim! As listas também servem para instalar vários pacotes de uma vez, o que pode ser muito confortável para quem precisa instalar vários programas.
* Lembrando que isso de fato não é "resolução de dependências", ele só gera uma lista com o que você precisa para fazer o build de um programa. Se você for remover o pacote que instalou por meio de uma lista, as dependências vão continuar lá.
Agora não tem mais motivo pra não arranjar Slack! Mate o "Bob"! ieieieieieieieieie!