apport-chroot
NAME
apport-chroot - Create and use chroots for apport retracing
SYNOPSIS
apport-chroot
[
options
]
create
release chrootpath
apport-chroot
[
options
]
retrace
crashid
apport-chroot [ options ] retrace reportfile apport-chroot [ options ] upgrade chroot
apport-chroot [ options ] upgrade all apport-chroot [ options ] installdeb chroot debpath [ debpath ... ] apport-chroot [ options ] login chroot
apport-chroot [ options ] retrace reportfile apport-chroot [ options ] upgrade chroot
apport-chroot [ options ] upgrade all apport-chroot [ options ] installdeb chroot debpath [ debpath ... ] apport-chroot [ options ] login chroot
DESCRIPTION
Introduction
apport-chroot is a tool to create, update, and manage chroots for using apport-retrace for several distributions and releases without needing to touch the installed system at all. It uses fakeroot and fakechroot, so that the entire reprocessing of apport reports which get submitted to the crash database can happen on a system where you do not have any root privileges or special packages installed. Chroots can either be kept as a normal directory, or be stored as a compressed tarball. In the latter case, the tarballs are temporarily unpacked when using them. While unpacking takes a certain amount of time, this is well compensated by not having to purge packages after installing them for retracing, and being sure not to destroy the chroot on failed upgrades, buggy maintainer scripts, etc. This also allows you to use a chroot for several tasks in parallel.Installation
If fakeroot or fakechroot themselves are not installed, you can just put the libraries anywhere and set the environment variables APPORT_LIBFAKEROOT and APPORT_LIBFAKECHROOT to the full path of libfakeroot.so and libfakechroot.so. If the distribution packages are installed, they will be found and used automatically.Creating chroots
The create mode is mostly a wrapper around debootstrap which does the grunt work of actually creating a basic chroot. apport-chroot then does some additional modifications:*
Install some additional packages like
apport-retrace
and
gpgv
(as well as extra packages specified with
-p)
*
Optionally set up additional apt sources (with
-a)
*
Adapt the apt
sources.list
if you use a file:// mirror
*
Disable daemons with a
policy-rc.d
*
Clean up the apt package cache
The only two required arguments are the release name (passed to
debootstrap), and the target path (a directory, or the path to a
.tar.gz
tarball). For the reasons stated above, you usually want to supply
--tar
and some additional apt sources with
-a.
Using chroots for retracing
In retrace mode, apport-chroot selects and prepares a chroot for the crash to reprocess and calls apport-retrace in the chroot with the crash file. Most of the options regarding retracing are passed to apport-retrace, with making sure to properly handle file references by symlinking them into the chroot. In this mode you need to specify a "chroot map" which maps distribution names and release versions to chroot paths. Please see the documentation of -m/--chroot-map below for details. If you want to enable duplicate checking, you need to specify the path to the duplicate database. Please see --duplicate-db below for details.Maintaining chroots
The most common maintenance operation is upgrade which takes a chroot path as argument, or a DistroRelease: name if a chroot map is specified. If all is specified as chroot name, all chroots in the chroot map are upgraded. To install a set of externally provided .deb packages into the chroot, you can use the installdeb mode. This will temporarily copy the debs into the chroot and install them with dpkg. The login mode will provide a shell in the chroot which can be used for general maintenance. If you use tarball chroots, you need to decide whether you want to keep the changes after logging out (specify --save) or throw them away (default). In --save mode, you can still throw away the changes if you log out with a nonzero exit code, i. e. by doing exit 1.OPTIONS
--mirror=URL
Use an alternate archive mirror (passed to
debootstrap).
This is only relevant in
create
mode. (Passed to
debootstrap)
-p package, --extra-package=package
Install an additional package for the selected operation. May be
specified multiple times.
This is only relevant in
create
mode.
-a source, --apt-source=source
Add an extra apt source when creating chroots. May be specified
multiple times.
This is only relevant in
create
mode.
-t, --tar
Create a chroot tarball instead of a permanent directory.
This is only relevant in
create
mode, for other operations you can specify a directory or a tarball.
--save
When logging in to a chroot tarball, update the tarball afterwards to
save modifications if the shell exits with status 0.
This is only relevant in
login
mode if the chroot is a tarball.
-m MAP, --chroot-map=MAP
Path to chroot map. This file maps DistroRelease: values to chroot
paths (in the syntax of a Python dictionary). This needs to be
specified when refering to a chroot by distro release name instead of
a chroot path, or when using
apport-chroot
in
retrace
mode and specifying a crash ID. In the latter case, the
DistroRelease:
field is first read from the crash database, and the appropriate
chroot selected from that map. Example:
{
"Ubuntu 7.04": "chroots/feisty.tar.gz",
"Debian 3.1": "chroots/sarge.tar.gz",
}
}
-v, --verbose
Verbose operation. This option is also passed to
apport-retrace
to report download/install progress when installing additional
packages.
--auth=authfile
If a bug number is given without any of the options
-g,
-s, or
-o,
then the retraced stack traces are attached to the bug.
Since this needs authentication, an authentication file for the crash
database must be specified. This could e. g. be the standard
cookies.txt
from Firefox' profile directory if the crash database uses
cookie based authentication. This option is passed to
apport-retrace
(after copying the file into the chroot).
--duplicate-db=dbfile
Specify path to the duplicate check database (in SQLite format). The
database will be created and initialized if it does not exist. This
option is passed to
apport-retrace
(after linking the file into the chroot).
If not specified,
apport-retrace
will not check for duplicates.
--confirm-attach
Display retraced stack traces and ask for confirmation before
uploading them to the bug report. This option is ignored when
retracing report files. This option is just passed to
apport-retrace.
-h, --help
Print a short online help that documents all options.
AUTHOR
apport
and the accompanying tools are developed by Martin Pitt
<martin.pitt@ubuntu.com>.
