Este capítulo contiene una descripción general de las tres herramientas principales utilizadas en la creación de sistemas en vivo: live-build, live-boot y live-config.
live-build es una colección de scripts para generar los sistemas en vivo. A estos scripts también se les conoce como «comandos».
La idea detrás de live-build es ser un marco que utiliza un directorio de configuración para automatizar completamente y personalizar todos los aspectos de la creación de una imagen de un sistema en vivo.
Muchos conceptos son similares a los utilizados para crear paquetes Debian con debhelper:
Unlike debhelper, live-build provides the tools to generate a skeleton configuration directory. This could be considered to be similar to tools such as dh-make. For more information about these tools, read on, since the remainder of this section discuses the four most important commands. Note that the preceding lb is a generic wrapper for live-build commands.
As discussed in live-build, the scripts that make up live-build read their configuration with the source command from a single directory named config/. As constructing this directory by hand would be time-consuming and error-prone, the lb init command can be used to create the initial skeleton configuration tree.
The lb init command creates the following directories inside config/: hooks/, includes/, several other includes subdirectories for each stage of the build process and package-lists/. The latter includes a list of several important live packages like live-boot, live-config and live-config-sysvinit.
Issuing lb config without any arguments completes the config/ subdirectory which it populates with some default settings in configuration files, and two skeleton trees named auto/ and local/.
$ lb config
[2014-04-25 17:14:34] lb config
P: Updating config tree for a debian/wheezy/i386 system
Using lb config without any arguments would be suitable for users who need a very basic image, or who intend to provide a more complete configuration via auto/config later (see Managing a configuration for details).
Normalmente, se tendrá que especificar algunas opciones. Por ejemplo, para especificar la distribución que se desea construir utilizando su nombre en clave:
$ lb config --distribution sid
Es posible especificar muchas opciones, tales como:
$ lb config --binary-images netboot --bootappend-live "boot=live components hostname=live-host username=live-user" ...
Una lista completa de opciones está disponible en la página de manual lb_config.
El comando lb build lee la configuración del directorio config/. A continuación, ejecuta los comandos de nivel inferior necesarios para crear el sistema en vivo.
El comando lb clean es el encargado de eliminar varias partes de una creación de forma que las creaciones posteriores puedan comenzar de forma limpia. Por defecto se eliminan las etapas chroot, binary y source pero se deja el caché intacto. Además, se pueden limpiar etapas de forma individual. Por ejemplo, si se han realizado cambios que sólo afectan a la etapa binary, se debe usar lb clean --binary antes de crear una nueva binary. Si los cambios modifican el bootstrap y/o los cachés de paquetes, por ejemplo, cambios en las opciones --mode, --architecture o --bootstrap, se debe utilizar lb clean --purge. Ver el manual de lb_clean para una lista detallada de todas sus opciones.
live-boot es una colección de scripts que proporcionan ganchos (hooks) para initramfs-tools, que sirve para generar un initramfs capaz de arrancar sistemas en vivo, tales como los creados por live-build. Esto incluye imágenes ISO, archivos comprimidos en formato tar para el arranque en red, e imágenes para llaves USB.
En el momento del arranque, buscará en los medios de almacenamiento de sólo lectura un directorio /live/ donde se encuentra un sistema de ficheros raíz (a menudo una imagen del sistema de ficheros comprimidos como squashfs). Si lo encuentra, creará un entorno de escritura, utilizando aufs, para que arranquen los sistemas tipo Debian.
Se puede encontrar más información sobre ramfs inicial en Debian en el Manual del kernel Debian Linux en ‹http://kernel-handbook.alioth.debian.org/› concretamente en el capítulo sobre initramfs.
live-config consiste en una serie de scripts que se ejecutan en el arranque después de live-boot para configurar el sistema en vivo de forma automática. Se ocupa de tareas como la creación del nombre del equipo (hostname), las variantes locales y la zona horaria, crear el usuario en vivo, la inhibición de trabajos de cron y el inicio de sesión automático del usuario en vivo.