Configurando o slackpkg
O primeiro passo na habilitação do multilib no Slackware, é a configuração do
slackpkg.
Para quem não sabe (como você, slacker, não sabe disso?), o
slackpkg é um gerenciador de atualizações e a única ferramenta do gênero oficial na distribuição, sendo as outras (
slapt-get,
sbopkg, etc), heresias a serem banidas pela fumaça do cachimbo de J. R. "Bob" Dobbs.
O
slackpkg realiza a sincronização dos pacotes instalados no computador com aqueles encontrados em um mirror oficial da distro, realizando desinstalações e downgrades caso necessário.
Os principais recursos do
slackpkg, são:
- Atualizar os pacotes oficiais instalados;
- Remover os pacotes de terceiros instalados;
- Realizar upgrades e downgrades de versão.
Entretanto, graças ao recurso de desinstalar pacotes de terceiros, precisa-se de atenção especial. Os pacotes relacionados ao multilib não são oficiais no sentido de não estarem nos mirrors oficiais, e por isso, um comando como:
# slackpkg clean-system
...irá mandar os pacotes do multilib para o mesmo limbo no qual reside o bom-senso brasileiro. Agora, os pacotes do multilib são oficiais no sentido de serem desenvolvidos por Eric Hameleers, mais conhecido como
AlienBOB, um dos principais nomes no desenvolvimento do Slackware, abaixo apenas do próprio "Cara" (um dos profetas do GNU/Linux, também conhecido como
Patrick Volkerding).
Para evitar essa dor-de-cabeça, é necessário instruir o
slackpkg para ignorar os pacotes relativos ao multilib. A maneira de fazer isso corretamente, é a inclusão de algumas regex no arquivo
/etc/slackpkg/blacklist.
Eu entrarei em mais detalhes sobre esse arquivo no dia em que eu sentir ser necessário escrever apenas sobre o
slackpkg, mas resumidamente, o
slackpkg consulta todas as regex no arquivo dentro das partes constituintes do nome oficial de um pacote Slackware (para quem não sabe - e como você, slacker, não sabe disso? - o nome tem a estrutura
nome-versão-arquitetura-build-tag.t{g,x,b}z) e se ele encontrar algum nome de pacote que corresponda a uma das regex, ele ignora o pacote, tanto para instalá-lo, quanto para desinstalá-lo.
As regex que precisam estar no
/etc/slackpkg/blacklist, são:
[0-9]+SBo
[0-9]+alien
[0-9]+multilib
Embora seja óbvio, preciso dizer (do contrário os membros de nossa comunidade com crise de "tadinho, pega ele pela mão, leva no colo, mastiga a comida e dá pra ele comer") que o arquivo só pode ser editado como root.
Faça a si mesmo um favor e edite-o pelo
Vi, já que você precisará do terminal como root de qualquer maneira para continuar a proceder com as instruções deste artigo mesmo. Após a inclusão desses regex no
/etc/slackpkg/blacklist, rode o comando:
# slackpkg update
...para atualizar a base de dados do programa.
* Atenção: este passo só é obrigatório se você realmente usa o
slackpkg em seu sistema. Eu sei, isso era óbvio, mas embora seja óbvio...
Habilitando o multilib
O próximo passo é obter e instalar os pacotes necessários para a habilitação do multilib em seu Slackware.
Embora seja possível realizar o trabalho todo compilando pacote a pacote, hoje e apenas hoje, nós não seremos masoquistas burros (masoquistas inteligentes usam Funtoo ou Exherbo) e nos privaremos da diversão da compilação.
Para obter os pacotes, execute o comando:
# VERSAO=versão && lftp -c "open http://www.slackware.com ; cd ~alien/multilib/$VERSAO multilib"
Substitua
versão, no valor da variável VERSAO, pela versão do seu Slackware. No repositório de AlienBOB estão disponíveis, no momento da publicação deste artigo, as versões 13.0, 13.1, 13.37, 14.0, 14.1 e Current.
Continue com os comandos:
# cd multilib
# upgradepkg --reinstall --install-new *t?z */*/*.t?z
...para instalar os pacotes relacionados ao multilib em seu computador ou atualizá-los, caso você já os tenha instalado anteriormente. Será preciso reiniciar o computador para que algumas configurações (notadamente a
gblic) passem a surtir efeito.
Após iniciar, meus parabéns, seu Slackware está com o multilib ativado!
Instalando programas de 32 bits
Para instalar binários 32 bits previamente empacotados em seu Slackware multilib, proceda normalmente, isto é, o bom e velho:
# installpkg nomedopacote32bits
Resolverá sua situação. Porém, para compilar programas escritos em 32 bits, será preciso executar antes o comando:
# . /etc/profile.d/32dev.sh
Para ativar as variáveis de ambiente relacionadas à compilação em 32 bits. Essas variáveis ficarão ativas, até que a janela do terminal seja encerrada, caso você esteja trabalhando com uma interface gráfica, ou até que o logout seja realizado, se você estiver em modo texto puro.
Adicionalmente, caso você esteja usando um
SlackBuild, será preciso definir manualmente a variável ARCH para
x86, mediante edição do script
SlackBuild relevante.
Adicionalmente, ao se instalar uma lib, dê preferência a instalar a versão para 64 bits e então, uma versão de 32 bits convertida para o multilib do Slackware. Para tanto, compile normalmente a versão de 32 bits e então, converta-a para multilib com o comando:
# convertpkg-compat32 -i pacote32bits
E instale o pacote convertido resultante.
Conclusão
A otimização do Slackware é um trabalho mais simples do que a otimização de outras distribuições, embora seja infinitamente mais manual. Entretanto, é essa simplicidade que confere a força, a plasticidade e a estabilidade da distribuição, devidamente instaurada para além das fronteiras do tempo.
Graças ao Slackware, o mundo
GNU/Linux jamais se esquecerá de sua filosofia UNIX e de tudo que ela representa, apesar dos esforços da Canonical e da Red Hat.
E com isso, encerro mais este artigo do Dino® após compartilhar com vocês todas essas informações fresquinhas e relevantes. Em nome de "Bob" Dobbs, seu sistema operacional Slackware, e seu profeta "o Cara", desejo a todos vocês um cachimbo para chamar de seu e uma vida longa e livre dos pinks!