LIVE-HELPER(7)

NAME
live-helper - the Debian Live tool suite

SYNOPSIS
lh COMMAND [-h|--help] [-u|--usage] [-v|--version] [--breakpoints] [--conffile] [--debug] [--force] [--quiet] [--verbose]

or

lh_COMMAND [-h|--help] [-u|--usage] [-v|--version] [--breakpoints] [--conffile] [--debug] [--force] [--quiet] [--verbose]

DESCRIPTION
live-helper is a set of scripts to build Debian Live system images. The idea behind live-helper is a framework that uses a configuration directory to completely automate and customize all aspects of building a Live image.

The COMMAND is a name of a live-helper command (see below).

More documentation about how to use live-helper is available in the individual manpages for each helper and in the manual at <http://live.debian.net/manual/>.

OPTIONS

  Shared live-helper options
The following command line options are supported by all live-helper programs.

-h, --help
    display help and exit.

-u, --usage
    show usage and exit.

-v, --version
    output version information and exit.

  Common live-helper options
The following command line options are supported by most live-helper programs. See the man page of each program for a complete explanation of what each option does.

--breakpoints
    run with breakpoints.

--conffile
    use custom configuration file.

--debug
    show debug information.

--force
    force helper execution, even if stage file exists.

--quiet
    be quiet.

--verbose
    be verbose.

If a program's name starts with "lh_", and the program is not on the list below list, then it is not part of the live-helper package, but it should still work like the other programs described on this page.

LIVE-HELPER COMMANDS
We divide live-helper into high level ("porcelain") commands and low level ("plumbing") commands.

Here is the complete list of all available live-helper commands. See their man pages for additional documentation.

HIGH-LEVEL COMMANDS (PORCELAIN)
We separate the porcelain commands into the main commands and some ancillary user utilities.

  Main porcelain commands

lh_config(1)
    create configuration for live-helper

lh_bootstrap(1)
    create the first stage by bootstrapping a basic debian system

lh_chroot(1)
    create the second stage by customizing the chroot

lh_binary(1)
    create the third stage by generating a binary image

lh_source(1)
    create the optional fourth stage by generating a source image

lh_clean(1)
    clean up system build directories

  Ancillary Commands

lh(1)
    generic live-helper wrapper

lh_build(1)
    alias for all stages

lh_local(1)
    helper for using a local live-helper

lh_testroot(1)
    ensure that a system is built as root

LOW-LEVEL COMMANDS (PLUMBING)
The actual work of live-helper is implemented in the low-level commands, called plumbing. They are not supposed to be used by end users, they should stick with porcelains as they ensure that all the different plumbing commands are executed in the right order. However, if you intend to reuse live-helper commands in your own scripts, then the plumbings might be of interest for you.

Note that the interface (set of options and the semantics) to these low-level commands are meant to be a lot more stable than Porcelain level commands. The interface to Porcelain commands on the other hand are subject to change in order to improve the end user experience.

  Bootstrap commands

lh_bootstrap_cache(1)
    cache bootstrap stage

lh_bootstrap_cdebootstrap(1)
    bootstrap a Debian system with cdebootstrap(1)

lh_bootstrap_copy(1)
    bootstrap by copying the host system

lh_bootstrap_debootstrap(1)
    bootstrap a Debian system with debootstrap(8)

  Chroot commands

lh_chroot_apt(1)
    manage /etc/apt/apt.conf

lh_chroot_cache(1)
    cache chroot stage

lh_chroot_debianchroot(1)
    manage /etc/debian_chroot

lh_chroot_devpts(1)
    mount /dev/pts

lh_chroot_dpkg(1)
    manage /sbin/dpkg

lh_chroot_hacks(1)
    execute hacks in chroot

lh_chroot_hooks(1)
    execute hooks in chroot

lh_chroot_hostname(1)
    manage /bin/hostname

lh_chroot_hosts(1)
    manage /etc/hosts

lh_chroot_install-packages(1)
    install queued packages into chroot

lh_chroot_interactive(1)
    make build interactive

lh_chroot_linux-image(1)
    manage /etc/kernel-img.conf

lh_chroot_local-hooks(1)
    execute local hooks in chroot

lh_chroot_local-includes(1)
    copy local files into chroot

lh_chroot_localization(1)
    install localization packages into chroot

lh_chroot_local-packages(1)
    queue install of local packages into chroot

lh_chroot_local-patches(1)
    apply local patches against chroot

lh_chroot_local-preseed(1)
    use debconf local preseeding file

lh_chroot_packages(1)
    queue install of packages into chroot

lh_chroot_packageslists(1)
    queue install of packages lists into chroot

lh_chroot_preseed(1)
    use debconf preseeding file

lh_chroot_proc(1)
    mount /proc

lh_chroot_resolv(1)
    manage /etc/resolv.conf

lh_chroot_selinuxfs(1)
    mount /selinux

lh_chroot_sources(1)
    manage /etc/apt/sources.list

lh_chroot_symlinks(1)
    convert symlinks

lh_chroot_sysfs(1)
    mount /sys

lh_chroot_sysvinit(1)
    configure sysvinit

lh_chroot_sysv-rc(1)
    manage /usr/sbin/policy-rc.d

lh_chroot_tasks(1)
    install tasks into chroot

  Binary commands

lh_binary_chroot(1)
    copy chroot into chroot

lh_binary_debian-installer(1)
    install debian-installer into binary

lh_binary_disk(1)
    install disk information into binary

lh_binary_encryption(1)
    encrypts rootfs

lh_binary_grub(1)
    installs grub into binary

lh_binary_includes(1)
    copy files into binary

lh_binary_iso(1)
    build iso binary image

lh_binary_linux-image(1)
    install linux-image into binary

lh_binary_local-hooks(1)
    execute local hooks in binary

lh_binary_local-includes(1)
    copy files into binary

lh_binary_local-packageslists(1)
    install local packages lists into binary

lh_binary_manifest(1)
    create manifest

lh_binary_md5sum(1)
    create binary md5sums

lh_binary_memtest(1)
    installs a memtest into binary

lh_binary_net(1)
    build netboot binary image

lh_binary_rootfs(1)
    build rootfs image

lh_binary_silo(1)
    installs silo into binary

lh_binary_syslinux(1)
    installs syslinux into binary

lh_binary_tar(1)
    build harddisk binary image

lh_binary_usb-hdd(1)
    build binary usb-hdd image

lh_binary_win32-loader(1)
    installs win32-loader into binary

lh_binary_yaboot(1)
    installs yaboot into binary

  Source commands

lh_source_debian(1)
    download sources

lh_source_debian-live(1)
    copy debian-live config into source

lh_source_disk(1)
    install disk information into source

lh_source_iso(1)
    build iso source image

lh_source_md5sum(1)
    create source md5sum

lh_source_net(1)
    build source net image

lh_source_tar(1)
    build source tarball

lh_source_usb-hdd(1)
    build source usb-hdd image

CONFIG FILES
Many live-helper commands make use of files in the config/ directory to control what they do. Besides the common config/common, which is used by all live-helper commands, some additional files can be used to configure the behavior of specific live-helper commands. These files are typically named config/stage or config/stage_helper (where "stage" of course, is replaced with the name of the stage that they belong to, and "helper" with the name of the helper).

For example, lh_bootstrap_debootstrap uses files named config/bootstrap and config/bootstrap_debootstrap to read the options it will use. See the man pages of individual commands for details about the names and formats of the files they use. Generally, these files contain variables with values assigned, one variable per line. Some programs in live-helper use pairs of values or slightly more complicated variable assignments.

Note that live-helper will respect environment variables which are present in the context of the shell it is running. If variables can be read from config files, then they override environment variables, and if command line options are used, they override values from config files. If no value for a given variable can be found and thus is unset, live-helper will automatically set it to the default value.

In some rare cases, you may want to have different versions of these files for different architectures or distributions. If files named config/stage.arch or config/stage_helper.arch, and config/stage.dist or config/stage_helper.dist exist, where "arch" is the same as the output of "dpkg --print-architecture" and "dist" is the same as the codename of the target distribution, then they will be used in preference to other, more general files.

All config files are shell scripts which are sourced by a live-helper program. That means they have to follow the normal shell syntax. You can also put comments in these files; lines beginning with "#" are ignored.

SEE ALSO
live-initramfs(7)

HOMEPAGE
More information about live-helper and the Debian Live project can be found in the homepage at <http://debian-live.alioth.debian.org/> and in the manual at <http://live.debian.net/manual/>.

BUGS
Report bugs by submitting a bugreport for the live-helper package in the Debian Bug Tracking System at <http://bugs.debian.org/> or write a mail to the mailinglist at <debian-live@lists.debian.org>.

AUTHOR
live-helper was written by Daniel Baumann <daniel@debian.org> for the Debian project.