Depois de muito procurar, acabei encontrando este tutorial bem legal que explica como fazer para recompilar códigos-fonte de uma distribuição. Tá, mas qual a diferença disso e de compilar um código-fonte baixado? Não é tão óbvio, mas em algumas situações, um pacote tem algumas dependências não diretas, isto é, que o pacote não as carrega consigo explicitamente, sendo que o gerenciador de pacotes não as identifica, portanto. Isso implica em compilar um código-fonte que, de repente, não funciona com o resto da distribuição ou precisa de OUTRAS compilações de OUTROS códigos-fonte para funcionar. Dá pra imaginar onde isso pode (ou não) acabar né?
Bom, indo direto ao assunto: precisamos de alguns pacotes instalados para viabilizar as compilações. Isto pode ser feito através de
$sudo apt-get install build-essential fakeroot dpkg-dev
Depois, para organizar o processo, criamos uma pasta:
$mkdir [nome do programa]
$cd [nome do programa]
Agora podemos fazer a instalação do código-fonte e, em seguida, resolver as dependências:
$sudo apt-get source [nome do programa]
$sudo apt-get build-dep [nome do programa]
Descompactamos com a ferramenta de manipulação o arquivo Debian source package (.dsc):
$sudo dpkg-source -x [nome do programa_versão-revisão].dsc
Finalmente, para compilar o código-fonte:
$cd [nome do programa_versão-revisão]
$sudo dpkg-buildpackage -rfakeroot -b
Se for necessário adicionar parâmetros à compilação; por exemplo --enable-qqcoisa --disable-umtrem; ANTES de compilar, sete os valores na variável DEB_BUILD_OPTIONS. Explicitando o exemplo:
$DEB_BUILD_OPTIONS="--enable-qqcoisa --disable-umtrem"
Os pacotes gerados serão criados no diretório imediatamente acima do que estamos, isto é [nome do programa_versão-revisão] e podem ser instalados, se forem mais de um, em lote ou um por vez através dos comandos:
$cd .. $dpkg -i [nome do programa]*
Com certeza, muita coisa pode acontecer nesse meio tempo e, ao final, não funcionar ou funcionar parcialmente. Claro, estamos lidando com muitos comandos e não gosto de "atropelar" com tanta informações mas não faz muito sentido fazer o processo parcialmente ou explicar só alguns dos comandos pois eles trabalham em conjunto para um resultado final. Caso encontre dificuldade em algum momento do processo, reveja os passos, divida para conquistar, google na cabeça e boa sorte!
Assinar:
Postar comentários (Atom)


0 comentários:
Postar um comentário