Saiba como compilar e instalar programas Linux distribuídos diretamente pelo código-fonte [tar.gz]

Compilar_instalar_codigofonte_LINUX

Hoje em dia, instalar programas no Linux se tornou a coisa mais simples de se fazer no sistema. Dependendo da distribuição Linux, você tem recursos complementares que facilitam ainda mais o processo. Gerenciadores de pacotes e repositórios oficiais, mantidos pela comunidade mantenedora da distribuição, enriquecem o processo de instalação dos programas. Contudo, em muitos momentos você se depara com programas disponibilizados diretamente pelo código-fonte. Assim, cabe ao usuário ter conhecimento prévio para compilar e instalar programas Linux distribuídos diretamente pelo código-fonte, normalmente compactados via tar.gz.

AUMENTE SUA PRODUTIVIDADE!
Crie e administre aplicações entre ambientes diferentes. Tenha agilidade e padronização na entrega dos serviços de TI. E, assim, ganhe tempo e seja eficiente na entrega desses serviços. Saiba como

Contextualizando

As distribuições Linux, ao longo do tempo, vem melhorando e criando métodos para facilitar a instalação de pacotes no Linux. Gerenciadores de pacotes, bem como: apt e yum, são exemplos legados dessas mudanças. Atualmente, existem projetos que visam a universalização do modo e distribuição de programas para os sistemas Linux. Entre eles, destaco o Snap e Flatpak; Canonical e Red Hat como mantenedoras, respectivamente.

Entretanto, vão aparecer situações onde você não terá nenhuma dessas opções disponíveis… pois alguns desenvolvedores de softwares disponibilizam seus programas diretamente pelo código-fonte (source) – que por sinal era, nos primórdios, o único método utilizado para instalação de programas no Linux (algumas distribuições ainda mantêm essa técnica com frequência). Em resumo, você tem acesso a um arquivo compactado no formato .tar.gz (maioria das vezes), contendo o código-fonte do programa, e a instalação consiste em compilar e instalar os executáveis gerados na máquina.

Mas por quê ainda se preocupar com isso se existem pacotes pré-compilados para instalação?!

Devido às diferenças que existem entre uma distribuição e outra um pacote do Fedora não funcionará no Debian, por exemplo. Assim, essa técnica garante suporte a todas as distribuições Linux, universalmente! Ou seja, baixando um programa distribuído a partir do código-fonte (source), não será preciso se ater a qual distro Linux você está usando; pois, verificada as dependências necessárias, será possível compilar e instalar o programa.

Isso se deve ao fato de que essa maneira de distribuir os programas, diretamente pelo código-fonte (source), não é feita por empacotamento pré-compilado (pacote .deb ou .rpm, por exemplo). Assim, cabe ao usuário ter conhecimento prévio para compilar e instalar programas Linux distribuídos diretamente pelo código-fonte, normalmente compactados via tar.gz.

Por outro lado, um problema, em compilar e instalar programas a partir dos fontes, é que o processo é demorado e, para muitos, nem sempre simples. É preciso ter instalado uma grande quantidade de compiladores e bibliotecas, necessários para compilar os mais diversos programas. E isso causa bastante dificuldade para os usuários, principalmente iniciantes.

Em 4 passos…

Resumindo o processo de instalação de programas disponibilizados a partir do código-fonte, informo que o mesmo se dá em 4 passos:

1- Descompactar o arquivo tar.gz que contém o código-fonte;
2- Resolver dependências necessárias para a instalação correta do programa – cada programa possui suas próprias dependências, e isso torna processo demorado e um pouco mais complicado. Cada programa tem sua peculiaridade;
3- Compilar;
4- Instalar;

DETALHES
Neste tutorial usei como exemplo o programa Pidgin IM e o sistema OpenSUSE Tumbleweed

1- Baixar e descompactar o arquivo tar.gz

Primeiramente, faça o download do arquivo pidgin-2.11.0.tar.gz AQUI [ Versão 2.11.0 ]

O arquivo baixado é um tarball, geralmente é identificado através do uso de duas extensões “.tar” e “.gz”, combinadas para formar “.tar.gz”. Uma extensão combinada simples, .tar.bz também é popular. Esse formato usa o utilitário tar para criar um único tarfile com todo o conteúdo do diretório – o código-fonte do programa, no caso.

Para descompactar o conteúdo do arquivo arquivo pidgin-2.11.0.tar.gz, você deve executar o comando:

tar -xzvf pidgin-2.11.0.tar.gz

Entre no diretório descompactado:

cd pidgin-2.11.0

O conteúdo do diretório contém o código-fonte da aplicação e o arquivo Makefile, entre outros arquivos. Essa estrutura garante um programa distribuído a partir do código-fonte (source) 😉 Por isso, nem todo arquivo “tar.gz” significará um programa distribuído dessa forma; poderá ser apenas um arquivo compactado.

2- Resolver dependências

Esta etapa pode ser considerada a mais “complexa” do processo, pois caso as dependências necessárias, da aplicação, não sejam atendidas o código-fonte não poderá ser compilado e instalado, futuramente. E cada aplicação possui um leque diferente de dependências.

No caso do programa Pidgin existem algumas dependências que precisam ser resolvidas – ou seja pacotes que já precisam estar instalados no sistema, pois caso contrário dará erro no processo!

Em distribuições derivadas do Debian, a principal dependência é pacote de compiladores que contém todas as ferramentas básicas para compilação de um programa. Muito conhecido, chamado de build-essential:

sudo apt-get install build-essential

Como usei o OpenSUSE, o pacote equivalente é o devel_basis:

sudo zypper install -t pattern devel_basis

Assim, depois de satisfazer as dependências do sistema, é preciso resolver as pendências da aplicação. Para isso, você DEVE executar o comando:

./configure

Esse comando verifica todas dependências que o programa precisa, como se o pacote de compiladores está instalado; por exemplo. O prefixo ./ diz ao sistema Linux para procurar o arquivo de configuração no diretório atual e executá-lo. Assim, você precisa estar dentro do diretório do programa (pidgin-2.11.0) para poder executar esse comando:

Se tudo correr bem, você não verá quaisquer erros:

Caso apresente algum erro, basta examinar a saída do comando ./configure e instalar/configurar todas as dependências ausentes usando seu gerenciador de pacotes. Execute ./configure quantos vezes for preciso até que você não veja mais erros 😉

No meu caso (com o openSUSE Tumbleweed instalado), tive alguns erros que avisaram a ausência de alguns pacotes. Portanto, segue lista de todos os pacotes que foi precisa instalar no meu ambiente de testes:

AVISO
Cada sistema vai apresentar resultados diferentes. Pois, poderão surgir dependências que estarão resolvidas e outras não. Por isso, essa etapa requer mais atenção do usuário Linux.
sudo zypper install intltool glib2-devel gtk2-devel libXss1 libXss.so.1 libXss-devel libSM-devel meanwhile-devel libgnutls-devel tcl-devel tk-devel

3- Compilação

Depois de ter resolvido todas as dependências, você deve compilar o programa. Use o comando make para fazer isso:

make

Este processo pode demorar alguns minutos, dependendo do programa. Certifique-se de que a saída não exibirá quaisquer erros antes de continuar para o próximo passo 😉

4- Instalação

Pronto… não tendo apresentado nenhum erro até agora, você precisa instalar o programa. Basta executar sudo make install. Este passo move todos os binários em seu local correto no seu sistema para que o programa fique pronto para usar:

sudo make install

Programa instalado!!
 
Mas, se você desejar remover o programa, que acabou de instalar, basta entrar no diretório que você instalou o programa e executar os 2 comandos abaixo:

sudo make uninstall
sudo make clean

Por fim, informo que para instalar a maioria dos programas a partir do código-fonte (source), você passará pelas mesmas situações do exemplo. Contudo, com algumas diferenças das mostrados aqui. Por exemplo, você pode precisar usar cmake em vez de make. Por isso, sempre leia o arquivo “README” contido no diretório de cada programa!! Além dele, normalmente, existe o arquivo “Install” também 😉


Via | MakeTechEasier

Ricardo Ferreira

Ricardo Ferreira

Fundador do Linux Descomplicado - LD.

Sempre em busca de novos conhecimentos, preza por conteúdo de qualidade e auto-explicativo. Por isso, persiste em criar um site com artigos relevantes para todos os leitores do Linux Descomplicado!
Ricardo Ferreira

Comentários

comentários


VOCÊ TAMBÉM PODERÁ LER...