• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

CR_

- apt-build -

1 mensagem neste tópico

Retirado em grande parte de : http://www.debian-rs.org/sites/www.debian-rs.org/artigos/apt-build-pt-br.html

debian_first_love.png

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:

linteam@debian:~# apt-get install apt-build

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:

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 = " "

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. Por fim, adicione a linha no arquivo /etc/apt/sources.list, caso não exista:

deb file:/media/hda6/apt-build/repository apt-build main

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 permiçã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:

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

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. É a conselhável a leitura do  maintainer guide.

Recompilando tudo...

O último comando "world", deve lembrar algo para as pessoas que adoram o BSD. Nos sistemas BSD, é possível 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 se "reconstrói o mundo":

Primeiro dar uma olhadela ao /usr/share/doc/apt-build/README.Debian

Depois criar a lista de pacotes a recompilar:

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

Edita-la (!) e retirar pacotes como kernel, gcc, pacotes que instalaram sem ser dos repositórios, ...

linteam@debian: gedit /etc/apt/apt-build.list

Por fim:

linteam@debian:~#apt-build world

Alguns pacotes podem não ter a source para download (como aqueles que instalamos manualmente) e então o apt-build pára. Nesse caso teremos que editar o /etc/apt/apt-build.list , apagar esse pacote e todos os anteriros que já foram recompilados e instalados.

Convém usar a opção --reinstall no comando #apt-build world .

Por fim...

Estou agora a fazer apt-build world , depois dou feedback, no entanto aviso:

"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.

PS: Penso que em distribuições como Ubuntu o apt-build também serve.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora