Compilando um Pacote Source no Linux PDF Imprimir E-mail
Escrito por uppernet   
Qui, 10 de Março de 2011 22:21

detalhes:

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 documentopadrã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
$ su
# 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.

autor: uppernet

 

Adicionar comentário


Código de segurança
Atualizar