pbuilder tips

27 Sep 2013

I’ll write down some tips useful when dealting with pbuilder in Ubuntu, pbuilder is a builder for testing the creation of .deb packages from .dsc sources, however I often use it as a light replacement for full virtual machines.

E: Release signed by unknown key (key id 8B48AD6246925553)

I: Distribution is sid.
I: Building the build environment
I: running debootstrap
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
E: Release signed by unknown key (key id 8B48AD6246925553)

This messages indicates debootstrap has not been able to verify than 8B48AD6246925553 is a valid key, by default pbuilder in Ubuntu reads /usr/share/keyrings/ubuntu-archive-keyring.gpg. This key is defined at: /usr/share/pbuilder/pbuilderrc. It sounds logic than a Debian key is not valid in an Ubuntu setup, however sometimes it’s useful to test a package against Debian without installing a full Debian environment.

This problem can be solved by adding the Debian key to the Ubuntu keys:

$ sudo gpg --no-default-keyring --keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg --recv-keys 8B48AD6246925553
$ sudo DIST=sid ARCH=amd64 pbuilder create

Or adding it to other ring and use it temporally:

$ gpg --no-default-keyring --keyring /etc/apt/trusted.gpg --recv-keys 8B48AD6246925553
$ tail $HOME/.pbuilderrc
 '--keyring' '/etc/apt/trusted.gpg'
$ sudo DIST=sid ARCH=amd64 pbuilder create

If you don’t want to mess with ~/.pbuilderrc the parameter can also be set from the prompt command:

$ sudo DIST=sid ARCH=amd64 pbuilder create --debootstrapopts --keyring=/etc/apt/trusted.gpg

Run X apps

Pbuilder is a nothing but a chroot + debian enchantments, you can run virtually anything, from audio/video, to cli/gui applications, etc. Running a X app is a two step process:

$ xhost + #in the host environment
[chroot] $ export DISPLAY=:0.0
[chroot] $ app

Run i18n apps

Running apps in other languages requires to download extra language packages and modify the LC_ALL variable:

[chroot] $ apt-get install language-pack-es #interchange -es for the 2 letters of your own lang
[chroot] $ LC_ALL=es_ES.utf-8 app

Run multimedia apps

To run multimedia applications besides enabling X, you’ll need to mount /proc and /dev:

$ printf "%s\\n" 'BINDMOUNTS="${BINDMOUNTS} /dev /proc' >> ~/.pbuilderrc
$ pbuilder login