Cada distribuição Linux possui um gerenciamento próprio de pacotes de programas, o que impede que versões específicas para uma distro funcione em outra qualquer. Assim, o usuário que ainda não está totalmente familiarizado com esse sistema livre pode ter alguma dificuldade por causa dessa incompatibilidade.
Para tornar mais clara essa questão, vamos apresentar neste artigo maneiras de descobrir se um aplicativo Linux qualquer funciona na distribuição instalada em sua máquina. Vamos usar o Ubuntu como base, por ser um dos principais sistemas Linux do mercado.
Compatibilidades entre pacotes binários
Atualmente, toda distribuição moderna possui algum mecanismo para instalação de programas de maneira muito simples. Por exemplo, o Ubuntu e o Debian trabalham com pacotes DEB, Opensuse e Mandriva com RPM, Slackware com TGZ, entre outros.
O primeiro ponto que necessita estar claro é o fato que um pacote específico não pode ser instalado diretamente em uma distra que usa outro tipo de gerenciamento. Por exemplo, não é possível instalar um aplicativo RPM no Ubuntu, que trabalha com DEB. Por isso é muito importante que antes de instalar qualquer programa, você sempre procure o pacote compatível com o gerenciador seu sistema.
Além disso, ainda não garantido que um pacote funcione em todas as distribuições que o suportam. É muito comum encontrar arquivos DEB que rodam no Ubuntu, mas não no Debian, principalmente quando existem uma indicação de distribuição, como “galculator_1.0.ubuntu_all.deb”. Caso não exista tal indicação, como “gnomecatalog_1.0.all.deb”, significa que provavelmente o mesmo pacote funcionaria em ambos sistemas. O mesmo princípio vale pra as distribuições baseadas em RPM e TGZ também.
Como se isso não bastasse, um mesmo pacote pode não funcionar em versões distintas de uma mesma distribuição. Tal fato acontece bastante no Ubuntu, visto que arquivos de instalação para o Intrepid Ibex (8.10) muitas vezes não rodam no Jaunty Jackalope (9.04). Na maioria dos casos a versão do sistema está indicada no pacote, por exemplo: “mp3split_1.0.jaunty_all.deb”. Por isso, sempre decida por downloads para sua versão, quando disponíveis.
Existe ainda a questão da arquitetura da máquina, pois um pacote pode não funcionar em alguma arquitetura distinta daquela para que ele foi compilado. Caso funcione, o desempenho não será o mesmo, visto que artifícios extras teriam que ser instalados na distribuição. Esse é o caso do Ubuntu, que até roda programas 32bits em uma arquitetura 64 bits, mas com uma perda performance. A indicação da arquitetura pode ser conferida no próprio nome do arquivo, como por exemplo: mp3split_1.0.jaunty_i386.deb. Caso o pacote venha com “all”, significa que ele funcionará em todas arquiteturas ( mp3split_1.0.jaunty_all.deb ).
Como achar o melhor pacote?
Visto as questões acima, primeiramente sempre procure o pacote que sirva para sua arquitetura e que funcione na versão da distribuição que você está usando no momento. Caso não seja possível, escolha então um pacote genérico para sua distribuição. Se ainda você não achar, use um arquivo genérico DEB, RPM ou TGZ, dependendo do seu sistema. Se ainda não for possível nenhum método acima, torna-se necessário o uso dos scripts binários ou compilação.
Scripts Binários e Compilação
O script binário, que normalmente possui a extensão .SH, permite que um programa seja instalado através de poucos passos, normalmente através de poucos cliques. O seu único impecílio é o fato que todas as dependências acusadas precisam ser instaladas manualmente, ao contrário do uso de DEBs e RPMs, cujas dependências são baixadas e instaladas automaticamente.
Contudo, alguns scripts são limitados a uma versão de kernel em específico, o que impede que o aplicativo rode uma distro um pouco mais antiga, por exemplo. Neste caso, torna-se necessário baixar e compilar o código fonte. Do mesmo modo que o anterior, dependências também terão que ser instaladas manualmente.
Métodos alternativos
Até agora vimos métodos confiáveis para a instalação de programas, contudo, existem outros não tão garantidos assim. Por exemplo, o Alien converte pacotes entre diversos formatos (DEB, RPM, TGZ, PKG, etc.). Desta maneira, uma versão para o fedora de uma ferramenta poderia funcionar no Ubuntu. Tal método é interessante para programas de uso comum, mas definitivamente não recomendado para aplicativos de sistema, pois as bibliotecas contidas no novo pacote não seriam as nativas para a distribuição.
Outro aplicativo interessante é o Wine, que permite que programas Windows EXE rodem no Linux. Atualmente, uma boa quantidade de programas Windows fucionam através deste método, mas grande parte dos principais programas comerciais, como o Photoshop e o Corel Draw, ainda não rodam de maneira apropriada.
Categorias