JPL Informática
FLISOL 2011
  Home   Quem somos   Contato
segunda, 6 de Fevereiro de 2012
   Busca
   Links
   Artigos Linux
   Área restrita
   Site Antigo
   Serviços
   Cursos
   Clientes
   Créditos
Rodando no GNU/Linux
rodando no GNU/Linux
Compilando código fonte
Conteúdo:
Introdução (arquivos tar.gz)
Instalação (compilando os sources)
Vantagens (binários x fontes)
Dependências

Introdução:

Neste artigo abordarei uma dúvida comum dos iniciantes no Linux: como compilar programas.

Os tópicos abaixo referem-se aos procedimentos mais comuns para compilar software livre, além de suas vantagens, mas podem não se aplicar a todos os casos. A regra é: leia o README (além de documentos relacionados que acompanham o programa), para informações sobre o procedimento mais específico de compilação.

Para prosseguir, certifique-se de ter as ferramentas de desenvolvimento necessárias em seu sistema (série D).

Se o fonte .tar.gz seguir os padrões GNU, ele deve conter os seguintes arquivos em seu diretório principal:

  INSTALL

Como todos os pacotes GNU são instalados da mesma forma, este é um documento padrão.

  NEWS

Últimas notícias sobre o projeto.

  README

Informações essenciais, como a explicação do propósito do programa e de procedimentos especiais de instalação.

  COPYING

GNU General Public License.

  AUTHORS

Lista dos principais contribuintes do projeto.

  ChangeLog

Uma lista formatada contendo o histórico das mudanças que ocorreram no pacote, por quem e quando. Usada para acompanhar o trabalho no projeto.

Sobre o formato do arquivo tar.gz, em geral, o primeiro número representa a versão principal do programa. O segundo número representa uma versão menor de lançamento, quando apenas pequenas mudanças são adicionadas ao programa. O último número é o número do patch, ou nível de patch, e geralmente representa correções de bugs.


Instalação:

Basicamente, após adquirir o fonte, descompacte-o desta forma:

  cd /opt/src
  // diretório que conterá os fontes
  tar -zxvf fonte-1.2.3.tar.gz
  // descomapactando o programa fonte
  cd fonte-1.2.3
  // entrando no diretório principal do programa
						

Configure para seu sistema e, finalmente, compile o programa:

  ./configure
  make
  make install
						

Só isso. Esta é a forma mais comum de se compilar um programa.

O script configure é gerado pelo autoconf. Antes de executá-lo, digite:./configure --help para ter uma listagem das suas opções de compilação. Uma opção comum é usar --prefix=/usr para definir este como o diretório alvo de instalação.

O GNU make será o responsável pela compilação, através das instruções contidas no Makefile gerado pelo script de configuração (configure).

Apenas para o make install é necessário ter privilégios de root, pois este comando instalará o(s) arquivo(s) compilado(s) em seus diretórios comuns, como /usr/bin (binários), /usr/lib (bibliotecas) e /usr/man (manual).

Para desinstalar, o comando é make uninstall. Se desejar recompilar o programa, e reconfigurá-lo, digite antes o comando make distclean para apagar o cache, ou make clear && rm config.cache caso o distclean não funcione.

Alguns programas, como o nedit, não possuem uma regra de install no makefile. A forma mais simples de se instalar um programa, na realidade, é através do comando:

   # install -m 0755 nedit /usr/bin
						

O parâmetro -m indica a permissão. Outro parâmetro comum é o -s, que indica ao install para remover símbolos de debug, e assim gerando um executál de menor tamanho.


Vantagens:

E qual a vantagem disto sobre a utilização de pacotes binários pré-compilados?

O código-fonte disponível e aberto é a base do GNU/Linux. As possibilidades trazidas pelo software livre são muitas. Com o código do programa podemos:

  • Conhecer como funciona...
  • Modificar...
  • Otimizar...
  • Adicionar funcionalidades...
  • Portar para varias plataformas...
  • Corrigir erros...
  • Reaproveitar...
  • Aprender...

Muitas vezes é necessário partir dos fontes, pois o pacote binário pode não conter as opções que você precisa. E nem sempre pacotes estão disponíveis para sua distro.

Além disto, ao compilar um programa através dos fontes, ele será adaptado à sua máquina, e não a uma máquina genérica. Por exemplo, compilar o X com otimizações para seu MMX traz melhorias na performance geral deste software.

Através dos fontes você pode também aplicar patches, o que não é possível em arquivos binários.


Dependências:

O script configure deve detectar eventuais problemas de dependências.

Se ele retornar que há uma biblioteca faltando ou que a versão é incorreta, e você tiver a biblioteca, procure nas opções do configure uma forma de especificar o caminho correto desta lib (por ex: ./configure --with-qt-dir=/usr/lib/qt2).

A biblioteca deve estar em algum caminho especificado no /etc/ld.so.conf. Para adicionar caminhos, execute como root ldconfig. Para verificar posteriormente as dependências do arquivo binário, digite ldd programa. Para listar as bibliotecas disponíveis: ldconfig -p.


Conheça as distribuições GNU/Linux

Debian
Debian
Slackware
Slackware
Fedora
Fedora
Mandrake
Mandriva
 
Desenvolvido por JPL - © Copyleft 2003-2011