Pacotes fonte no Debian não são necessariamente um pacote .deb. Ao contrário do src.rpm, o Debian tem três arquivos que representam o pacote fonte. O arquivo .orig.tar.gz (ou .tar.gz no caso de pacotes nativos Debian), o .diff.gz e o .dsc.
O orig.tar.gz tem o fonte original do programa, sem modificação alguma, o .diff.gz guarda as modificações feitas no pacote para "debianizá-lo" e, finalmente, o .dsc é um arquivo de controle usado pelo sistema de empacotamento para lidar com o pacote fonte.
Pode-se baixar pacotes fonte com o APT. Para isso basta digitar:
$ apt-get source pacote
Esse comando baixa os três arquivos necessários e cria o diretório pacote-versão. Para que o processo de compilação aconteça automaticamente basta executar:
$ apt-get -b source pacote
Isso irá fazer com que o pacote fonte seja baixado e automaticamente compilado após o download.
Outra forma de usar pacotes fonte é baixar por si mesmo os três arquivos necessários e então usar as ferramentas providas pelo sistema de gerenciamento de pacotes para usá-los. Para criar o diretório pacote-versão debianizado a partir dos três arquivos basta rodar:
$ dpkg-source -x pacote.dsc
Isso vai abrir o orig.tar.gz e aplicar o .diff.gz. A partir desse momento pode-se usar o dpkg-buildpackage -rfakeroot -us -uc para construir esse pacote.
É o dpkg-source
que abre o pacote fonte no diretório corrente após
um apt-get source pacote.
Para compilar um pacote fonte (torná-lo um .deb) basta entrar no diretório
criado pelo dpkg-source
e digitar:
$ dpkg-buildpackage -rfakeroot -b -us -uc
Isso construirá no diretório pai (onde está o diretório pacote-versão) o pacote .deb daquele programa. Note que o -rfakeroot só é necessário caso você não seja root.
Você pode também rodar o script debian/rules com o argumento binary. Dentro do diretório pacote-versão faça:
$ debian/rules binary
Use o fakeroot
caso não esteja como root, colocando-o no início da
linha acima.
Normalmente você baixou o fonte de um determinado pacote para alterar alguma
função que vem pre-compilada ou não nele. Para mudar essas opções basta
editar, na maioria dos casos, o arquivo debian/rules
, que fica
dentro do diretório aberto pelo dpkg-source
. Veja a seção Como usar pacotes fonte com dpkg-source, Seção 5.3
para detalhes.
O arquivo debian/rules
é, na maioria das vezes, um
makefile que é chamado para construir o pacote. Nele estão as
chamadas ao ./configure e os comandos de compilação/instalação do
programa. Alterando-se esses pode-se mudar as características do pacote que é
construído.
Para compilar pacotes, normalmente, você vai precisar de algumas bibliotecas e headers que podem não estar instalados. Essas são as chamadas dependências de compilação. Para resolver, você pode olhar no arquivo debian/control que está dentro do diretório pacote-versão a linha Build-Depends: e instalar os pacotes listados ali.
O APT mais novo, que está atualmente no woody tem uma função especial que é capaz de checar essas dependências automaticamente. Para isso basta executar:
# apt-get build-dep pacote
O pacote da linha de comando é o pacote do qual se quer pegar as dependências de compilação. Note que esse comando não baixa o fonte do pacote.
Guia Prático para o Debian GNU/Linux
1.2kov@debian.org