[Dica] Apt-Build
Enviado: 29 Out 2009, 08:44
Apt-Build – Optimize o seu sistema Debian ou derivado
Retirado em grande parte de : http://www.debian-rs.org/sites/www.debi ... pt-br.html
Desde a chegada das primeiras versões da distribuição Gentoo, algumas pessoas tem dito que “O Debian é bom, mas não é optimizado” (como as distribuições que se está sempre a fazer make o tempo todo). Isto é errado, cada um é livre para recompilar software que 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 todos os users de Linux, mas esta forma de instalação não é integrada ao sistema de pacotes do Debian. O 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.
Instalação…
Para instalar o apt-build, o custume:
[blockquote]
linteam@debian:~# apt-get install apt-build
[/blockquote]
Com a instalação completa, o script de pós-instalação irá fazer algumas perguntas sobre o diretório de construção dos pacotes, as opções de optimização para o gcc e arquitetura do processador. Estas informações serão gravadas no arquivo /etc/apt/apt-build.conf. Se foi cometido algum erro, é possível editar o arquivo manualmente para ajustá-lo. Exemplo:
[blockquote]
linteam@debianpc1:~$ cat /etc/apt/apt-build.conf
build-dir = /media/hda6/apt-build/build
repository-dir = /media/hda6/apt-build/repository
Olevel = -O3
mtune = -mtune=pentium4
options = ” “
make_options = ” “
[/blockquote]
Certifique-se de que os parâmetros build-dir e repository-dir apontem para um directório em uma partição com bastante espaço livre. Por fim, adicione a linha no arquivo /etc/apt/sources.list, caso não exista:
[blockquote]
deb file:/media/hda6/apt-build/repository apt-build main
[/blockquote]
Certifiquem-se de que, caso como, eu tenham posto o repositório noutra partição, que essa partição tenha a opção exec no mount, senão dá erro de permissão ao instalar.
Usando…
Como no apt-get, existem alguns comandos como update, upgrade, install, source, clean-build.
Primeiro o comando update; ele actualiza a lista de pacotes instaláveis, nada mais para explicar. O mesmo para o comando upgrade, o qual não necessita maiores explicações. Um exemplo com o comando install:
[blockquote]
linteam@debian:~# apt-build install memstat
—–> Installing build dependencies (for memstat) —–
Reading Package Lists… Done
Building Dependency Tree… Done
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
—–> Downloading memstat source (memstat) —–
Reading Package Lists… Done
Building Dependency Tree… Done
Need to get 22.4kB of source archives.
Get:1 ftp://127.0.0.1 1.0.4/main memstat 0.4-1 (dsc) [482B]
Get:2 ftp://127.0.0.1 1.0.4/main memstat 0.4-1 (tar) [21.9kB]
Fetched 22.4kB in 0s (322kB/s)
dpkg-source: extracting memstat in memstat-0.4
—–> Building memstat —–
…
…
…
dpkg-genchanges: binary-only upload – not including any source code
dpkg-buildpackage: binary only upload (no source included)
—–> Moving packages to repository —–
—–> Updating repository —–
Using: -O3 -mcpu=athlon-xp -march=athlon-xp
…
…
Reading Package Lists… Done
Building Dependency Tree… Done
Reading Package Lists… Done
Building Dependency Tree… Done
The following NEW packages will be installed:
memstat
[/blockquote]
Podemos ver 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. Ao compilar um pacote com o dpkg, o dpkg-buildpackage não instala as dependências como o apt-build faz e a compilação pode tornar-se dificil. Até agora, nós vimos uma recompilação simples, para optimizar o software, mas se você quer modificar o código-fonte, ou outros arquivos no diretório debian/, o apt-build pode ser útil, e trazendo a possibilidade de ver todos os arquivos e diretórios do pacote. É aconselhável a leitura do maintainer guide.
Recompilando tudo…
O último comando “world”, deve lembrar algo para as pessoas que gostam de gentoo. Com este comando é possível compilar todos os pacotes (que tenho a source disponível claro).
Primeiro dar uma olhadela ao /usr/share/doc/apt-build/README.Debian
Depois criar a lista de pacotes a recompilar:
[blockquote]
linteam@debian:~#dpkg –get-selections | awk ‘{if ($2 == “install”) print $1}’ > /etc/apt/apt-build.list
[/blockquote]
Edita-la (!) e retirar pacotes como kernel, gcc, pacotes que instalaram sem ser dos repositórios,[/u] …
[blockquote]
linteam@debian: gedit /etc/apt/apt-build.list
[/blockquote]
Por fim:
[blockquote]
linteam@debian:~#apt-build world –reinstall –force-yes
[/blockquote]
O –reinstall para instalar reinstalar e o –force-yes para passar a autenticação dos pacotes.
Alguns pacotes podem não ter a source para download (como aqueles que instalamos manualmente) e então o apt-build pára (este é o principal defeito do apt-build). Nesse caso teremos que editar o /etc/apt/apt-build.list , apagar esse pacote e todos os anteriores que já foram recompilados e instalados.
Por fim…
“O autor do apt-build cuidadosamente avisa você a não compilar o gcc e outros softwares.”
Não me sinto responsável por danos causados no sistema pelo uso deste guia.