Apt-build

De Fórum Debian Wiki

Índice de conteúdo

Introdução

Desde a chegada das primeiras versões da distribuição Gentoo, algumas pessoas tem dito que "O Debian é bom, mas não é otimizado" (como as distribuições que você roda make o tempo todo). Isto é errado, você é livre para recompilar software que você usa no Debian, usando o apt. Baixar o source, descompactar, rodar os scripts de configuração (configure) e instalar (make install) é uma tarefa fácil para todo usuário Linux, mas esta forma de instalação não é integrada ao sistema de pacotes do Debian. Stow era uma maneira de compilar os softwares sem muito esforço, mas o software compilado não era realmente integrado nas dependencias do apt, ou seja, ficava fora da árvore de pacotes. A solução é usar o apt-build para recompilar um software que já foi empacotado (.deb) para o Debian.

Instalando

Com seu gerenciador de pacotes favorito (apt-get, aptitude, synaptic e etc...) instale o pacote apt-build. Exemplo:


emanuel@darkstar:~$ sudo aptitude install apt-build


Com a instalação completada, o script de pós-instalação irá fazer algumas perguntas sobre o diretório de construção dos pacotes, as opções de otimização para o gcc e arquitetura do processador. Estas informações serão gravadas no arquivo /etc/apt/apt-build.conf. Se você cometeu um erro poderá editar o arquivo manualmente para ajustá-lo. Exemplo:


emanuel@darkstar:~$ cat /etc/apt/apt-build.conf

build-dir = /var/cache/apt-build/build

repository-dir = /var/cache/apt-build/repository

Olevel = -O3

mtune = -mtune=k8

options = " "

make_options = " "


Certifique-se de que os parâmetros build-dir e repository-dir apontem para um diretório em uma partição com bastante espaço livre. Agora você está pronto para usar o apt-build!

Utilizando

Apt-Build install

Vou começar explicando os comandos principais do apt-build. Como no apt-get, existem alguns comandos como update, upgrade, install, source, clean-build.

Primeiro o comando update; ele atualiza a lista de pacotes instaláveis, nada mais para explicar. O mesmo para o comando upgrade, o qual não necessita maiores explicações. Usando o comando install:


emanuel@darkstar:~$ sudo apt-build install firefox


Você vera que o apt-build realiza vários passos: instalação dos pacotes necessários para a compilação, download do código-fonte, e então a compilação e instalação do pacote requerido. Quando você compila um pacote com o dpkg, o dpkg-buildpackage não instala as dependências como o apt-build faz e a compilação pode se tornar dificil.

Apt-Build source

Ele baixa o source do pacote contendo o diretório debian/ no qual você vai encontrar os arquivos necessários para construir o pacote (rules, control, changelog, etc) e o arquivo diff, coloca os arquivos baixados no build-dir e então descompacta-os no source do pacote e finalmente aplica o patch com o arquivo diff. Uso:


emanuel@darkstar:~$ sudo apt-build source firefox


Pode-se notar que três arquivos são baixados. Agora você tem o source do software, com o diretório debian/ e os arquivos necessários para a compilação do pacote, onde você pode modificar como quiser para atender as suas necessidades. Realizadas as modificações, você pode construir e instalar o pacote usando o comando apt-build install pacote_modificado.

As opções principais foram vistas, mas ainda existem algumas opções que fazem a diferença, como: clean-build, que é para o apt-build o que o comando clean é para o apt-get, ou seja, ele limpa o build-dir, mas não o repository-dir. Você pode remover um pacote com o comando remove ou obter informações com o comando info.

Recompilando todo seu sistema com o Apt-Build World

O último comando que vou falar é o world, ele deve lembrar algo para as pessoas que adoram o BSD. Nos sistemas BSD, você pode recompilar todos os ports, simplesmente mudando o diretório para /usr/ports e digitando make world. Este conceito está sendo usado pelo autor do apt-build, e isso é o que acontece quando você "reconstrói o mundo":


emanuel@darkstar:~$ sudo apt-build world

-----> Rebuilding the world! <-----

You should read README.Debian first


A leitura deste README parece ser obrigatória, e ensina que devemos criar uma lista de pacotes que queremos recompilar e instalar no lugar dos pacotes atuais, lista na qual devemos remover pacotes como gcc, libc6, entre outros. Vamos criar a lista:


emanuel@darkstar:~$ sudo dpkg --get-selections | awk '{if ($2 == "install") print $1}' > /etc/apt/apt-build.list


Editada a lista, é possível usar o apt-build world para recompilar e otimizar todo o seu sistema.

Conclusão

É hora de ir. Espero ter dado a vocês dicas de como usar o apt-build, que é uma ferramenta interessante e muito útil. Eu quero alertá-lo mais uma vez, o autor do apt-build cuidadosamente avisa você a não compilar o gcc e outros softwares. Nem eu nem ele somos responsáveis pelas suas atitudes. Então se você danificar seu Debian, não me escreva (exceto se quiser me fazer rir). Note também que o apt-build não inventa novos pacotes e se o software que você quer instalar não é empacotado oficialmente pelo Debian, o apt-build não poderá baixar o source de um mirror Debian e compilá-lo (você deverá pedir pelo empacotamento e esperar até que seja aceito).

Referência

Essa página é uma pequena adaptação do artigo original criado por Julien Reveret em 27/10/2004 e traduzido para o pt_BR por Thiago Scherer em 21/12/2004.

Artigo em pt_BR por Thiago Scherer

Ferramentas pessoais