Pbuilder e Pdebuilder
14 de Setembro de 2013, 2:00
, por Software Livre Brasil
|
Ninguém está seguindo este artigo ainda.
Criar pacotes deb (do jeito certo) é trabalhoso. Depois que pega o jeito
é bem mais fácil mas ainda sim trabalhoso, principalmente quando é
necessário fazer algum teste. Uma das formas de automatizar isso é usar
o pbuilder. Ele permite gerar pacotes usando uma ambientes de jaula
(chroot) e gerar pacotes para diferentes versões do Debian,
(Ubuntu) e outros. Por exemplo, criando alguns ambientes chroot com
versões diferentes de Linux (GNU/Linux) e arquitetura de hardware.
Criando os ambientes chroots
Debian Sid/Unstable em AMD64
1
2
|
$sudo pbuilder create --basetgz /var/cache/pbuilder/base-sid-amd64.tgz \
--distribution sid
|
Debian Wheezy (Stable) em I386 (ia32)
1
2
|
$sudo pbuilder create --basetgz /var/cache/pbuilder/base-stable-i386.tgz \
--distribution stable --architecture i386
|
Caso esteja usando Debian e queirar gerar um pacote para Ubuntu. Pode fazer
também mas terá que adicionar a chave pública do Ubuntu no apt antes de
criar. No exemplo abaixo é o Ubuntu Raring Ringtail (13.04).
1
2
3
4
5
|
$sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32
$sudo pbuilder create --basetgz /var/cache/pbuilder/base-raring-amd64.tgz \
--distribution raring --mirror http://ftp.ubuntu.com/ubuntu \
--debootstrapopts --keyring=/etc/apt/trusted.gpg
|
Gerando os pacotes
pbuilder
1
2
3
4
5
6
7
8
9
10
11
|
#Debian Sid
$sudo pbuilder build --basetgz /var/cache/pbuilder/base-sid-amd64.tgz \
--distribution sid foobar*.dsc
#Debian Stable
$sudo pbuilder build --basetgz /var/cache/pbuilder/base-stable-i386.tgz \
--distribution stable foobar*.dsc
#Ubuntu Raring
$sudo pbuilder build --basetgz /var/cache/pbuilder/base-raring-amd64.tgz \
--distribution raring foobar*.dsc
|
Nas primeiros vezes que você usa o pbuilder é comum assinar com gpg
(um tipo de programa de criptografia) os arquivos gerados manualmente
como o debsign.
1
2
|
$debsign -kfoo@bar.io /var/cache/pbuilder/result/foobar*.dsc
$debsign -kfoo@bar.io /var/cache/pbuilder/result/foobar*.changes
|
Ou usar um pdebuild para gerar o pacote e assinar os arquivos .dsc e
.changes automagicamente. =)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# Sid
$sudo pdebuild --auto-debsign --debsign-k XXXXXXXX -- \
--basetgz /var/cache/pbuilder/base-sid-amd64.tgz --distribution sid \
foobar*.dsc
# Stable i386
$sudo pdebuild --auto-debsign --debsign-k XXXXXXXX -- \
--basetgz /var/cache/pbuilder/base-stable-i386.tgz \
--distribution stable --architecture i386 foobar*.dsc
# Ubuntu Raring
$sudo pdebuild --auto-debsign --debsign-k XXXXXXXX -- \
--basetgz /var/cache/pbuilder/base-raring-amd64.tgz \
--distribution raring --mirror http://ftp.ubuntu.com/ubuntu \
foobar*.dsc
|
Atualizando ambientes chroot
Se precisar atualizar esses ambientes criados, pode fazê-los como os
exemplos abaixo.
1
2
3
4
5
6
7
8
9
10
11
|
# Debian Sid
$pbuilder update --basetgz /var/cache/pbuilder/base-sid-amd64.tgz \
--distribution sid
# Debian Stable i386
$pbuilder update --basetgz /var/cache/pbuilder/base-stable-i386.tgz \
--distribution stable --architecture i386
# Ubuntu Raring
$pbuilder update --basetgz /var/cache/pbuilder/base-raring-amd64.tgz \
--distribution raring
|
Os arquivos e o pacotes depois de gerados pelo pdebuild ou pbuilder
estarão em ”/var/cache/pbuilder/result/”. Mas você pode mudar isso facilmente
usando a opção –buildresult, olhe o manual do pbuilder.
Conclusão
O pbuilder e pdebuild são excelentes ferramentas que podem ser utilizadas
de muitas formas diferentes, principalmente para automação de testes. Se
quiser saber mais, leia manuais dos dois ($man pbuilder,
man pdebuild) ou se quiser automatizar pode ler as wiki do
Debian e Ubuntu (recomendadíssmo).
0sem comentários ainda