Pacotes e instaladores

Chegamos então à questão da instalação de programas, que é outro tema de dúvidas. Para quem está chegando agora, a instalação de aplicativos no linux pode parecer algo incompreensível, uma vez que existem muitos procedimentos diferentes. De acordo com o aplicativo e a distribuição em uso, o procedimento pode ser incrivelmente simples, como abrir um gerenciador de programas e clicar no aplicativo desejado, ou incrivelmente complicado, envolvendo o download de compiladores, edição de arquivos de texto e comandos manuais. Vamos então a uma tentativa de colocar ordem na casa.

No começo, existia o código-fonte. Você baixava um pacote .tar.gz, contendo o código-fonte do programa, e a instalação consistia em compilar e instalar os executáveis gerados na sua máquina.

Esta forma de instalação faz sentido em se tratando de aplicativos abertos, pois permite que você veja e até mesmo adapte o código-fonte se necessário. Em muitos casos, é possível instalar o programa em outro sistema operacional (a maior parte dos programas do Linux podem ser instalados no BSD, com pequenas adaptações) ou até mesmo em outras plataformas.

O problema é que instalar programas a partir dos fontes é demorado e nem sempre simples, já que você precisa ter instalado uma grande quantidade de compiladores e bibliotecas, necessários para compilar os mais diversos programas. Existem incontáveis pequenas bibliotecas e ferramentas de desenvolvimento por aí e não é muito viável tentar manter todas elas instaladas.

Compilar significa transformar o código-fonte, escrito pelo programador, nos arquivos binários que são executados pelo sistema. Ao compilar um programa, são gerados vários executáveis, bibliotecas e arquivos de configuração, que são copiados para pastas específicas do sistema. Os executáveis vão para a pasta “/usr/bin”, as bibliotecas para a “/usr/lib”, os arquivos de configuração para a “/etc” e assim por diante.

Alguém chegou, então, a uma conclusão óbvia: ao invés de cada um ter o trabalho de compilar o programa na sua própria máquina, seria mais simples se alguém compilasse e distribuísse um arquivo pronto, com os componentes já compilados, em um formato simples de instalar. Nasceram, então, os pacotes pré-compilados.

Os pacotes surgiram a partir de uma ideia muito simples. Você cria um arquivo compactado contendo a mesma estrutura de pastas e arquivos que seria criada ao instalar o programa manualmente. Ao instalar o pacote, os arquivos são descompactados no diretório raiz, fazendo com que todos os arquivos sejam colocados nos diretórios corretos. Ao desinstalar o pacote, os arquivos são removidos, deixando o sistema como estava inicialmente, uma forma rápida e limpa de instalar programas.

Existem basicamente três formatos de pacotes diferentes: os pacotes .deb, usados pelas distribuições derivadas do Debian (incluindo o Ubuntu, o Kubuntu e todas as inúmeras distribuições baseadas neles), os pacotes .rpm, usados pelas distribuições derivadas do Red Hat (Fedora, Mandriva e outros) e os pacotes .tgz, usados pelo Slackware e derivados.

Não existe nada de fundamentalmente diferente entre os três formatos, e é inclusive possível transformar um pacote .rpm em um pacote .deb, usando utilitários como o alien. Entretanto, devido às diferenças que existem entre uma distribuição e outra, não existe garantia de que um pacote do Fedora funcionará no Debian, por exemplo.

O próximo passo foi a criação dos gerenciadores de pacotes, programas que permitem baixar e instalar novos programas de forma automática, verificando as dependências e, caso necessário, baixando outros programas e bibliotecas de que o programa inicial precisa.

O primeiro gerenciador que vem à mente é o apt-get, que é usado em um número assustador de distribuições. Para instalar o “pidgin”, por exemplo, você precisaria apenas usar o:

# apt-get install pidgin

Existem ainda gerenciadores gráficos, como o Synaptic, que tornam a tarefa ainda mais amigável. Além do apt-get, outros exemplos de gerenciadores são o urpmi, usado no Mandriva, o yum, usado no Fedora e o zypper, usado no OpenSUSE.

Você pode se perguntar por que não fazem como no Windows, onde cada programa tem seu instalador. Na verdade, muitos programas são distribuídos desta forma, como o Java, OpenOffice, Firefox, Thunderbird, VMware e diversos games. Nestes casos, você simplesmente executa o arquivo e o instalador se encarrega do resto da instalação.

O inconveniente é que estes pacotes são desenvolvidos para funcionarem em qualquer distribuição, por isso incluem todo tipo de bibliotecas e módulos de que o programa possa precisar, sem reaproveitar os componentes que você já tem instalados. Isso faz com que os pacotes sejam práticos de instalar, mas, em compensação, bem maiores (e mais pesados), assim como muitos dos programas do Windows.

Outra dificuldade é que não existe no Linux uma biblioteca gráfica padrão, que esteja disponível em qualquer distribuição. Ao usar um instalador gráfico que utilize a biblioteca Qt (do KDE), por exemplo, usuários do Ubuntu e de outras distribuições onde ela não vem pré-instalada precisarão instalar um conjunto de pacotes adicionais antes de conseguirem abrir o instalador. Se usar um instalador baseado na biblioteca GTK, os usuários de distribuições baseadas no KDE (onde o GTK geralmente não vem pré-instalado) é que terão dificuldades, e assim por diante.

Devido a isso, aplicativos comerciais como o VMware e também alguns drivers (como os drivers 3D da nVidia) utilizam instaladores em texto puro, de forma a poderem ser instalados sem dificuldades em qualquer distribuição.

Naturalmente, existem exceções, como no caso dos jogos que utilizam o instalador gráfico desenvolvido pela Loki, como o Quake 3, Unreal, Medal of Honour e outros. Caso esteja curioso, você pode baixar os instaladores e demos de muitos jogos portados no http://darkstar.ist.utl.pt/pub/games/:

Estes instaladores quase sempre usam a extensão “.sh” e são fáceis de instalar, já que basta executar o arquivo no terminal para iniciar a instalação. Ao baixar o arquivo, ele sempre virá com a permissão de execução desmarcada, uma medida de segurança para prevenir acidentes com possíveis arquivos infectados com vírus e trojans.

Apesar de parecer perda de tempo, esta é uma das medidas que mais contribui para a segurança geral do sistema em um desktop, pois você não corre o risco de executar um arquivo simplesmente por clicar por acidente em um link no navegador ou no leitor de e-mails: precisa realmente salvá-lo no HD, marcar a permissão de execução e finalmente executá-lo. Um vírus que se propagasse via e-mail encontraria um terreno muito menos fértil no Linux.

Para ativar a permissão de execução, use o comando “chmod +x”, como em:

# chmod +x mohaa-lnx-1.11-beta3.run

Muitos instaladores podem ser executados diretamente com seu login de usuário, desde que você instale o programa em uma pasta dentro do seu diretório home. Outros realmente precisam ser executados como root. Você pode executar o programa diretamente pelo gerenciador de arquivos, clicando sobre ele, ou pelo terminal, usando o “./”, como em “./mohaa-lnx-1.11-beta3.run”.

Em resumo, podemos dizer que existem três formas de instalar programas no Linux:

  1. Usar o apt-get ou outro gerenciador para instalar pacotes próprios da distribuição em uso. Esta é a forma mais simples e menos passível de problemas, que você deve usar sempre que possível.
  2. Programas com instaladores próprios, destinados a funcionar em várias distribuições. Eles também são simples de instalar, mas não tão simples quanto usar o apt-get. Muitos aplicativos proprietários são distribuídos apenas desta forma, como o VMware.
  3. Instalar o programa a partir do código-fonte, o que pode ser necessário no caso de aplicativos pouco comuns, que não estejam disponíveis de outra forma, e também no caso de muitos drivers, onde é necessário gerar um módulo personalizado para o kernel em uso.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X