Pbuilder

From Wikitech
(Difference between revisions)
Jump to: navigation, search
m (Same architecture)
(i386 under amd64)
Line 23: Line 23:
 
Then to build a 32 bit package:
 
Then to build a 32 bit package:
 
  # linux32 pbuilder build --basetgz /var/cache/pbuilder/base-i386.tgz ''package.dsc''
 
  # linux32 pbuilder build --basetgz /var/cache/pbuilder/base-i386.tgz ''package.dsc''
 +
 +
=== Forcefully include the source tarball ===
 +
Sometimes <tt>dpkg-genchanges</tt> decides that the source doesn't need to be included. It is however needed for a new inclusion into the Wikimedia repository. You can force this with:
 +
--debbuildopts "-sa"
  
 
=== Modifying the base image ===
 
=== Modifying the base image ===

Revision as of 13:46, 11 October 2011

pbuilder is a tool to automatically build packages in a clean chroot of an arbitrary Debian/Ubuntu distribution.

Contents

Instructions

At the moment it's best to use ragweed for building packages; it has a slightly modified /etc/pbuilderrc and existing distribution images set up for more convenient building of packages.

Same architecture

The first time, create a clean install image using e.g.:

# pbuilder create --distribution feisty

Notably, pbuilder doesn't set up a correct APT /etc/apt/sources.list in the chroot image, so it's best to use pbuilder login --save-after-login once after creating it, and replace its sources.list with an actual correct one.

Then, when you want to build a package using this distribution image, use:

# pbuilder build package.dsc

If all goes well, you'll find the resulting package(s) in /var/cache/pbuilder/result.

i386 under amd64

The 64 bit AMD64 kernel can run i386 binaries, so i386 chroots are possible. Using this, i386 packages can be built on an amd64 machine.

Create a new distribution image using another filename:

# pbuilder create --distribution feisty --debootstrapopts --arch --debootstrapopts i386 --basetgz /var/cache/pbuilder/base-i386.tgz

Then to build a 32 bit package:

# linux32 pbuilder build --basetgz /var/cache/pbuilder/base-i386.tgz package.dsc

Forcefully include the source tarball

Sometimes dpkg-genchanges decides that the source doesn't need to be included. It is however needed for a new inclusion into the Wikimedia repository. You can force this with:

--debbuildopts "-sa"

Modifying the base image

To change something in the base image, for example to add an APT repository, use:

# pbuilder login --save-after-login

External documentation

Personal tools
Namespaces

Variants
Actions
Navigation
Ops documentation
Wiki
Toolbox