Jump to content

linux - apt-build -


CR_

Recommended Posts

Retirado em grande parte de : http://www.debian-rs.org/sites/www.debian-rs.org/artigos/apt-build-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 dependências 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.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.