Emdebian Multistrap information
Multistrap - multiple repository bootstrapping
[ Multistrap overview ] [ Secure Apt ] [ Example configurations ] [ Using multistrap for pbuilder chroots ] [ Multiple repositories ] [ Cascading configuration ] [ Cross building support ] [ Multistrap Wiki page ]
multistrap is the main tool for creating Emdebian root filesystems, replacing the old emsandbox tool used with Lenny.
Multistrap is a tool that starts off doing essentially same job as debootstrap but uses an entirely different method based on apt and extended to provide support for multiple repositories, using a configuration file to specify the relevant suites, architecture, extra packages and the mirror to use for each bootstrap.
Multistrap then extends the functionality to support automated creation of complete, bootable, root filesystems. It can merge packages from different repositories to make the rootfs. Extra packages are added to the rootfs simply by listing them - all dependencies are taken care of using apt. Current development in multistrap is to support user-specified scripts being added as hooks during the unpacking phase to add customised startup scripts and configure things like device nodes. (For this support, check the package in Debian experimental.)
Multistrap configuration and support
Multistrap includes a variety of configuration files for common usage (typical Debian suites and a variety of cross-building chroots). Multistrap supports cascading configurations where a specific configuration file includes a more general configuration file, which in turn is shared with other variations. This functionality is used by pdebuild-cross to create cross-building chroots.
Example simple configuration:
[General] arch=armel directory=/opt/multistrap/ cleanup=true noauth=false unpack=true aptsources=Grip Updates debootstrap=Debian [Debian] packages= source=http://ftp.uk.debian.org/debian keyring=debian-archive-keyring suite=lenny
This will result in a completely normal debootstrap of Debian lenny from the specified mirror, for armel in /opt/multistrap.
Specify a package to extend the multistrap to include that package and all dependencies.
Specify more debootstraps by adding new sections. Section names are used in the debootstrap general option.
Section names are case-insensitive.
Setting Grip instead of Debian in the debootstrap option, as below, will provide a base system from Emdebian Grip 1.0 and locate any missing dependencies in Debian 5.0 Lenny, allowing you to add any package(s) you need from Debian that are not yet in Emdebian Grip. (Change the debootstrap line to specify Grip to enable the new section.)
[Grip] packages=locales keyring=emdebian-archive-keyring source=http://www.emdebian.org/grip suite=lenny
Using the Emdebian customisations with multistrap
All dependencies are resolved only by apt, using all configured repositories, to use only the most recent and most suitable dependencies. Note that multistrap turns off Install-Recommends so if the multistrap needs a package that is only a Recommended dependency, the recommended package needs to be specified in the packages line explicitly.
The Architecture and directory can be overridden on the command line. Most other general options have command line equivalents.
multistrap also implements the modified version of the machine:variant support originally used in Emdebian Crush. Using the cascading configuration support, particular variants can be supported by simple changes on the command line.
Setting a filename in the tarballname field allows multistrap to pack up the final filesystem into a tarball.
multistrap is stateless - if the directory exists, it will simply proceed as normal and apt will try to pick up where it left off.
Back to the Emdebian Project homepage.