sbuild-createchroot - create sbuild chroot
sbuild-createchroot [-h|--help |
-V|--version] [--verbose] [--arch=arch]
[--chroot-prefix=prefix]
[--chroot-suffix=suffix]
[--chroot-mode=schroot|sudo|unshare] [--foreign]
[--resolve-deps | --no-resolve-deps] [--merged-usr |
--no-merged-usr | --auto-merged-usr]
[--keep-debootstrap-dir] [--debootstrap=debootstrap]
[--include=package1[,package2,[packagen]]]
[--exclude=package1[,package2,[packagen]]]
[--components=component1[,component2,[componentn]]]
[--keyring=keyring-file] [--setup-only]
[--make-sbuild-tarball=file] [--keep-sbuild-chroot-dir]
[--no-deb-src] [--alias=alias]
[--extra-repository=spec]
[--command-prefix=prefix] SUITE TARGET-DIRECTORY
[DEBIAN-MIRROR-URI [SCRIPT]]
buildd-create-chroot USER SUITE TARGET-DIRECTORY
[DEBIAN-MIRROR-URI]
sbuild-createchroot runs debootstrap(1) to create a
chroot suitable for building packages with sbuild. Note that while
debootstrap may be used directly, sbuild-createchroot performs additional
setup tasks such as adding additional packages and configuring various files
in the chroot. Invoking sbuild-createchroot is functionally equivalent to
running debootstrap --variant=buildd
--include=fakeroot,build-essential, then
editing /etc/apt/sources.list and /etc/hosts by hand.
The newly-created chroot is set up to work with schroot(1)
by creating a chroot definition file under /etc/schroot/chroot.d.
This should be edited to finish the chroot configuration after
sbuild-createchroot has completed.
buildd-create-chroot, like sbuild-createchroot, runs
debootstrap(1) to create a chroot for package building. However, this
creates a chroot specifically for buildd(1) with an additional
mandatory option to specify a user who will be granted sudo access inside
the chroot. This script mainly differs in its additional customisation of
/etc/apt/sources.list to use incoming.debian.org and
security-master.debian.org. It also removes some packages from the
newly-created chroot. Unless you are setting up an official Debian build
daemon, sbuild-createchroot should be used instead. The extra
functionality will be merged into sbuild-createchroot in the
future.
Note that debootstrap(1) is the canonical reference for the
meaning of the options; they are passed directly to debootstrap.
- --arch=arch
- Set the target architecture. This may be used if dpkg is not already
installed. See also --foreign, below.
- --chroot-suffix=suffix
- Add a custom suffix to the chroot name. Defaults to '-sbuild'.
- --chroot-prefix=prefix
- Add a custom prefix to the chroot name. Defaults to SUITE. This is useful
to create variants of a base suite like stretch-backports to which the
backports archive can be manually added after the base chroot was created
using sbuild-shell. This way, a normal stretch chroot and a
stretch-backports chroot can exist side-by-side. Besides this common use
case, this functionality can also be used to create chroots with any other
type of customization. It is a shortcut for creating a base chroot and
then having to manually copy it and edit the configuration files.
- --chroot-mode=schroot|sudo|unshare
- The sbuild chroot backend to generate the chroot for. The autopkgtest
backend is not supported by this method because of the diversity of
container types it supports. To generate a chroot for schroot and sudo,
sbuild-createchroot must be executed with superuser privileges (for
example by using sudo). Because of backwards compatibility, choosing
schroot implies sudo (but not the other way round). Choosing unshare
requires the --make-sbuild-tarball option. Creating a chroot for
the unshare backend can be done by a normal user (without sudo) but it
requires Linux user namespaces to be enabled (via "sysctl -w
kernel.unprivileged_userns_clone=1"). Chroot tarballs created for the
unshare backend are also compatible with the schroot backend if a
respective schroot config file is manually created by the user or by
running sbuild-createchroot with the --setup-only option. Defaults
to 'schroot'.
- --foreign
- Only perform the initial unpack phase of bootstrapping. This is required
if the target and host architectures do not match. Note that debootstrap
requires running by hand to complete installation; run the debootstrap
/debootstrap/debootstrap installed in TARGET-DIRECTORY to
complete the installation.
- --resolve-deps
- Automatically resolve missing dependencies. This is the default.
- --no-resolve-deps
- Do not automatically resolve missing dependencies.
- --keep-debootstrap-dir
- Don't delete the /debootstrap directory in TARGET-DIRECTORY
after completing the installation.
- --debootstrap=debootstrap
- Define a custom debootstrap variant. Defaults to 'debootstrap'.
- --include=package1[,package2,[packagen]]
- Comma separated list of packages which will be added to the list of
packages to download and extract.
- --exclude=package1[,package2,[packagen]]
- Comma separated list of packages which will be removed from the list of
packages to download and extract. Note that this can remove essential
packages, so use with extreme care.
- --components=component1[,component2,[componentn]]
- Comma separated list of archive components to use (e.g.
‘main’, ‘contrib’, ‘non-free’).
Defaults to ‘main’.
- --keyring=keyring-file
- Download signatures for retrieved Release files and check them
against keyring-file. By default /etc/apt/trusted.gpg is
used. Set to an empty string to disable signature checking.
- --merged-usr
- Create a chroot in which /bin, /sbin and /lib* are
symbolic links to their counterparts in /usr.
- --no-merged-usr
- Create a chroot in which /bin, /sbin and /lib* are
ordinary directories distinct from their counterparts in /usr. This
is the default.
- --auto-merged-usr
- Do not specify whether /bin, /sbin and /lib* are
symbolic links to their counterparts in /usr. In this case
debootstrap will use its default behaviour (which is suite-specific). This
might become the default in a future version of sbuild-createchroot.
- SUITE
- The distribution to bootstrap (e.g. ‘stretch[cq],
‘buster’, ‘bullseye’, ‘sid’). A
complete list may be found in /usr/share/debootstrap/scripts.
- TARGET-DIRECTORY
- The directory to create the chroot in. The directory will be created if it
does not already exist.
- DEBIAN-MIRROR-URI
- An http://, file:///, or
ssh:/// URI pointing to a suitable archive mirror.
Defaults to http://deb.debian.org/debian.
- SCRIPT
- debootstrap script to run. Not typically required.
- --setup-only
- Don't run debootstrap. Only perform the setup tasks on an already existing
chroot. This is useful for converting an existing chroot for use with
sbuild which has already been created using a tool such as debootstrap.
Some configuration steps can only be carried out on a directory chroot and
thus, this option is not useful with the unshare backend.
- --make-sbuild-tarball=file
- Create a bootstrapped file type chroot ready for use with sbuild and save
it as file. The compression format used for the tarball is
dependent on the file extension used in file. See the TARBALL
FILE section for more details.
- --keep-sbuild-chroot-dir
- Don't delete the directory used for creating a file type chroot. This
option does nothing if not creating a file type chroot.
- --no-deb-src
- Don't add a deb-src line to the /etc/apt/sources.list file in the
TARGET-DIRECTORY after the debootstrap process. This is useful in
situation when it is known that sbuild will never have to download the
source package itself but is always given an already downloaded dsc. In
that case, this option will help to save bandwidth and disk space because
the source indices don't have to be downloaded and later continually
updated.
- --alias=alias
- Add an alternative name that the chroot will be known by. This option can
be given multiple times to add more than one alias. Using an alias is
useful for chroots of distributions that are known by more than one name.
For example Debian unstable is also known as sid. Additionally, sbuild
chooses the distribution by the latest changelog entry which could list
UNRELEASED for packages that the maintainer is currently working
on. For Debian it thus makes sense to add UNRELEASED as an alias
for a Debian unstable chroot. This option is only allowed when choosing
--chroot-mode=schroot. For similar functionality with
--chroot-mode=unshare you can work with symlinks. See the EXAMPLES
section for how to use this option in practice.
- Add a repository to the list of apt sources. The repository specification
is a line suitable for an apt sources.list(5) file. For instance,
you might use --extra-repository="deb http://deb.debian.org/debian
experimental main" to allow packages in the experimental
distribution to fulfill build-dependencies. Note that the build chroot
must already trust the key of this repository. See the EXAMPLES section
for how to combine this option with --chroot-prefix and --alias.
- --command-prefix=prefix
- Set the chroot command-prefix option as specified. A common
use-case is to specify eatmydata, thereby preventing all commands executed
in the chroot from syncing data to disk. This option is only allowed when
choosing --chroot-mode=schroot. See schroot.conf(5) for more
details.
When creating an sbuild tarball file, the compression
format used to generate the tarball depends on the entension used in
file. Here is a listing of the extensions that will be detected and
what format the tarball will be generated as.
- *.tar
- Generates an uncompressed tarball.
- *.tar.gz|*.tgz
- Generates a compressed tarball using gzip.
- *.tar.bz2|*.tbz
- Generates a compressed tarball using bzip2.
- *.tar.lz|*.tlz
- Generates a compressed tarball using lzip.
- *.tar.xz|*.txz
- Generates a compressed tarball using xz.
If no extension is specified, sbuild-createchroot will rename
file to file.tar.gz and generate file.tar.gz as a
compressed tarball using gzip.
To create a bootstrapped file type sid (unstable) chroot ready for
use with sbuild and schroot (the default backend), saved in
/srv/chroot/unstable-amd64.tar.gz using the deb.debian.org
Debian http mirror redirector service and using a temporary directory as the
target:
% sudo
sbuild-createchroot
\
--make-sbuild-tarball=/srv/chroot/unstable-amd64.tar.gz
\
unstable `mktemp -d`
\
http://deb.debian.org/debian↵
To create a plain type sid (unstable) schroot chroot in
/srv/chroot/unstable using the deb.debian.org Debian http
mirror redirector service and with aliases for unstable and
UNRELEASED:
% sudo
sbuild-createchroot unstable /srv/chroot/unstable-amd64
\
--alias=sid --alias=UNRELEASED
\
http://deb.debian.org/debian↵
To create a schroot chroot to build for stretch backports:
% sudo
sbuild-createchroot
\
--extra-repository="deb http://deb.debian.org/debian
stretch-backports main"
\
--chroot-prefix=stretch-backports
\
stretch /srv/chroot/stretch-backports-amd64
\
http://deb.debian.org/debian↵
To create a schroot chroot to build for experimental using a
custom chroot prefix:
% sudo
sbuild-createchroot
\
--extra-repository="deb http://deb.debian.org/debian
experimental main"
\
--chroot-prefix=experimental
\
unstable /srv/chroot/unstable-experimental-amd64
\
http://deb.debian.org/debian↵
Creating a chroot for the unshare backend does not require
superuser privileges (no sudo). The path for the tarball is the default path
expected by sbuild for the unshare backend:
% sbuild-createchroot
--chroot-mode=unshare \
--make-sbuild-tarball
~/.cache/sbuild/unstable-amd64.tar.gz \
unstable `mktemp -d` http://deb.debian.org/debian/
\
sbuild-createchroot was previously known as buildd.chroot.
buildd.chroot performed exactly the same tasks, but additionally created a
number of directories in the chroot for use by sbuild. This is now done by
schroot(1).
Roger Leigh.
Francesco P. Lovergine.
Andres Mejia.
Copyright © 2004 Francesco P. Lovergine <frankie@debian.org>.
Copyright © 2007-2008 Roger Leigh <rleigh@debian.org>.
Copyright © 2010 Andres Mejia <mcitadel@gmail.com>.