CR_ Posted October 8, 2006 at 02:47 PM Report #55892 Posted October 8, 2006 at 02:47 PM 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. http://celsor.wordpress.com
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now