Antes de falar sobre o
slackpkg, cumpre trazer o martelo dos deuses para despedaçar mais um mito:
Slackware nunca teve um gerenciador de pacotes. Na verdade ele sempre teve: o
pkgtool, que gerenciava os pacotes instalados no sistema antes da adoção do slackpkg. O que o Slackware nunca teve e nunca terá é um programa oficial que resolva automaticamente as dependências. Mito detonado, vamos ao slackpkg.
Presente no Slackware desde a versão 13.0, o slackpkg é uma ferramenta que permite sincronizar a instalação da distro com um espelho da distribuição. Sincronizar é a palavra chave aqui: o slackpkg irá fazer downgrades se necessário para que a versão do pacote instalada no computador seja exatamente a mesma daquela encontrada no espelho.
Ele gerencia os pacotes no sentido que ele reconhece quais estão instalado e quais não estão, consegue instalá-los e removê-los. O slackpkg é, na verdade, um script que usa as funcionalidades do pkgtool e suas principais ferramentas (installpkg, upgradepkg e removepkg). Curiosidade: foi escrito por dois brasileiros: Evaldo Gardenali (aka UdontKnow) e Roberto Batista (mais conhecido como PiterPunk).
Para usá-lo é preciso antes de mais nada configurar um espelho e a lista negra. O slackpkg permite que apenas um único espelho esteja configurado para uso. Edite o arquivo
/etc/slackpkg/mirrors e descomente um e apenas um dos vários espelhos listados de acordo com a versão do Slackware instalada em seu computador. Eu recomendo fazer uso do espelho do
Slackbuilds.org ou do
espelho mantido por Eric Hameleers, mais conhecido como AlienBOB. Os espelhos são agrupados de acordo com a versão, isto é, você vai encontrar sob o título Slackware-14.1 todas os espelhos dessa versão do Slack. Existe ainda o grupo slackware-current, que são os espelhos que contém os pacotes oficiais mais atuais disponíveis para a distro. Escolha um espelho de sua preferência e descomente um E APENAS UM. Você pode escolher entre usar um espelho da versão atual da distribuição ou um espelho do slackware-current, contendo pacotes mais atuais, mas você não pode ter mais de um espelho descomentado nesse arquivo. Se você descomentar mais de uma linha, o slackpkg irá chiar, dizendo que só pode trabalhar com um espelho por vez.
Após configurar o espelho em
/etc/slackpkg/mirrors, é preciso configurar a lista negra em
/etc/slackpkg/blacklist. Neste arquivo você listará todos os pacotes que por alguma razão o slackpkg deve ignorar. Isso significa que o slackpkg não instalará, desinstalará ou atualizará o pacote enquanto o nome dele estiver na lista negra. Para facilitar sua vida, a lista negra aceita expressões regulares, portanto uma linha tal como:
[0-9]+_SBo
Colocará na lista negra todos os pacotes que em alguma parte de seus nomes possuam a expressão "_SBo", o que calha de ser todos os pacotes instalados via scripts SlackBuilds obtidos em
http://slackbuilds.org.
Configurados o espelho e a lista negra, agora é hora de ver os principais comandos do slackpkg:
# slackpkg update # Serve para pegar a lista dos pacotes disponíveis no espelho configurado
# slackpkg install-new # Serve para instalar os pacotes disponíveis no espelho, mas que ainda não foram instalados no computador
# slackpkg upgrade-all # Serve para atualizar os pacotes instalados no computador com os pacotes disponíveis no espelho, MESMO QUE ISSO SIGNIFIQUE UM DOWNGRADE
# slackpkg clean-system # Serve para desinstalar quaisquer pacotes instalados no computador que não estejam listados no espelho selecionado
# slackpkg blacklist # Envia automaticamente um ou mais pacotes para a blacklist
Antes de usar o slackpkg, é preciso executar o primeiro comando para montar a lista dos pacotes disponíveis no espelho configurado. A principal função do quarto comando é limpar o sistema automaticamente de quaisquer pacotes instalados por fora e que, porventura, estejam causando algum problema.
Ainda não é hora de reiniciar o computador! Se seu sistema for 32 bits, ou se você não quiser configurar o multilib em seu sistema 64 bits, pule a
página 7 do artigo. Do contrário, se você quiser habilitar o multilib em seu Slack64, sigam-me os bons!