sábado, 5 de setembro de 2015

Instalação da multilib no Slackware 64 bits e derivados

Para instalar a multilib no Slackware acesse o site oficial http://www.slackware.com/~alien/multilib/versão onde em versão você deve substituir pela versão correta do  seu Slackware 13.0, 13.1, 14.0, 14.1, e current onde este procedimento também se aplica a distro Salix de versão idêntica pois a mesma e derivada do Slackware.

O procedimento abaixo foi realizando no Salix 14.1 64 bits.

Fazendo download da multilib

Crie o diretório multilib entre no mesmo pelo terminal e depois execute os comandos abaixo.

Utilizando o lftp

$ lftp -c "open http://www.slackware.com/~alien/multilib/14.1/; mirror ."

ou utilizando o wget

$ wget -r -np http://www.slackware.com/~alien/multilib/14.1/

Depois de baixado os pacotes acesse o diretório que contém os mesmos e faça:
$ sudo upgradepkg --install-new *.t?z
$ sudo upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z 

Após reinicie o seu computador, para fazer a atualização geral de todas as libs do sistema e podendo agora instalar os pacotes de 32 bits.

Considerações e recomendações importantes

Preferencialmente não instale um pacote de 32 bits se você tem o mesmo pacote de 64 bits já instalado, somente faça isto caso seja uma dependência de um pacote de 32 bits que você instalou então neste caso você sempre deverá converter o pacote obrigatoriamente para multilib usando o comando convertpkg-compat32 para esta finalidade que removerá alguns diretórios originais do pacote de entrada como /usr/share e /usr/bin e outros para que não sob-regravar os arquivos binários e outros arquivos usados pela aplicação na versão de 64 bits. Os binários do pacote 32 bits ao usar convertpkg-compat32 que costuma ficar no path padrão como /usr/bin e outros são movidos para /usr/bin/32 e o caminho do mesmo não está incluído no seu path do sistema, para não interferir com o executável do programa da versão de 64 bits que será o padrão na execução do mesmo, não devendo nunca modificar este comportamento.

Exemplo de como usar o convertpkg-compat32

$ sudo convertpkg-compat32 -i pacote-i486.txz
$ sudo upgradepkg --install-new pacote-compat32-versao-x86_64-1aliencompat32.txz

Pronto pacote 32 bits convertido para multilib e instalado no seu sistema.

Se não existe um pacote 64 de bits que esteja instalado no seu sistema com o mesmo nome, no caso de o pacote ser principalmente um programa  para o ambiente gráfico que utiliza muitos diretórios a partir de /usr/share você pode e deve instalar o pacote de 32 bits diretamente com o installpkg pois se você usar o convertpkg-compat32 para isto o programa do pacote não funcionará  já que normalmente a grande maioria dos programas costuma armazenar arquivos a partir de /usr/share, e como o convertpkg-compat32 remover alguns caminhos do pacote original o mesmo não funcionará já que não existe os arquivos utilizados pelo programa e você também não terá o atalho no seu menu de programa.

Aviso:
Dependendo da origem e tipo de pacote como versão, data do pacote e distro em alguns casos raros o pacote pode ter outro nome bem diferente do usual, mas contém exatamente os mesmos arquivos, portanto tenha tenha muita atenção nesta parte antes de instalar.

Dependências de libs de 32 bits

Preferencialmente sempre instale libs de 32 bits da mesma versão do seu sistema Slackware de 64 bits embora que você possa instalar as mesmas de versões bem antigas do Slackware e de outras distro também nunca faça isto se você não for muito experiente e não conhece para que serve tal lib; pois libs muito antigas podem necessitar de muitos pacotes de versões antigas e causaria incompartibilidade com outras libs atuais o que ficaria completamente inviável também suas instalações manualmente e certamente também danificaria toda sua multilib e até o seu sistema de 64 bits dependendo da função dela; repito não faça isto jamais caso não saiba como contornar este procedimento antes mesmo de instalar as mesmas.

Em muitas ocasiões ao instalar libs de 32 bits convertendo elas ou não  com convertpkg-compat32 você deverá criar um link simbólico para a lib da mesma quando for reclamado por um programa que não funcionar, sendo esta situação completamente normal até em sistema unicamente de 32 ou 64 bits com pacote feito para a arquitetura citada quando obtido de outras fontes ou instalados por outros meios.

Exemplo da criação de link em /usr/lib
$  sudo ln -s libopenal.so.1  libopenal.so.0 
$  sudo ln -s libphysfs.so.2.0.3 libphysfs-1.0.so.0 

Para usuários menos experientes sempre use convertpkg-compat32 utilizando um pacote de lib de 32 bits que corresponde exatamente a sua versão do Slackware de 64 bits como citado anteriormente e sempre converta pacotes exclusivamente de libs caso você não saiba para que serve as mesmas não tendo o perigo de sob-regravar arquivos de outras funções que não seja as libs já que tanto pacotes de 32 e 64 bits de mesmo nome sempre utilizam alguns diretórios em comuns; isto somente você saberá se visualizar  o conteúdo do  pacote antes de instalar e verificar no seu sistema se existe algum dos arquivos e diretórios do seu pacote no sistema.

Notas pessoais

Para testar a eficiência da multilib mesmo existindo versões de 64 bits atuais dos programas abaixo eu instalei vários jogos de 32 bits baixado no ano de 2011 do Slackware, outros de distro baseada em rpm e deb que nem sei de qual distro é onde alguns funcionaram sem dependências e outros tiver que instalar as mesmas e resolver alguns probleminhas, mas fique bem satisfeito com a multilib, pois foi a primeira vez que utilizei um Slackware com multilib. Já havia feito alguns testes com Fedora e Xubuntu de 64 bits com o equivalente a multilib em 2010 e 2011, pois em meus computadores sempre utilizei como padrão sistema de 32 bits por causa de alguns jogos Linux e alguns jogos Windows de 32 bits rodado pelo wine.
Foram instalados games baixado em 2011 com supertux 2, penguin-command, lbreakout2, powermanga, moon-buggy, ceferino, njam, funny boat e outros.

Também testado com firefox versão 39.0 de 32 bits que funcionou perfeitamente.






Nenhum comentário:

Postar um comentário