Este capítulo contiene una descripción general de las tres herramientas principales utilizadas en la creación de sistemas Debian Live: live-build, live-boot y live-config.
live-build es una colección de scripts para generar los sistemas Debian Live. A estos scripts también se les conoce como «comandos».
La idea detrás de live-build es ser un marco (framework) 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 del paquete de herramientas de Debian debhelper escrito por Joey Hess:
A diferencia de debhelper, live-build contiene una herramienta para crear un directorio de configuración en esqueleto, lb config. Ésto podría ser considerado como similar a herramientas tales como dh-make. Para obtener más información sobre lb config, consultar El comando lb config
El resto de esta sección describe los tres comandos más importantes:
Como se comentó en live-build, los scripts que componen live-build obtienen su configuración desde un único directorio llamado config/. Como la creación de este directorio a mano sería largo y propenso a errores, se puede utilizar el comando lb config para crear el esqueleto de directorios de configuración.
Ejecutar lb config sin argumentos crea un subdirectorio config/ que se completa con algunas opciones por defecto y un árbol de subdirectorios en forma de esqueleto auto/:
$ lb config
[2012-08-03 22:59:17] lb_config
P: Considering defaults defined in /etc/live/build.conf
P: Creating config tree for a debian/i386 system
Usar lb config sin ningún argumento sería conveniente para los usuarios que necesitan una imagen muy básica, o que tienen intención de proporcionar más tarde una configuración más completa a través de auto/config (ver Gestionar una configuración para más detalles).
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 net --bootappend-live "hostname=live-machine 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 del nivel inferior más bajo 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. Ver el manual de lb_clean para una lista detallada de todas sus opciones
live-boot es una colección de scripts que proporcionan scripts gancho (hooks) para initramfs-tools, que sirve para generar un initramfs capaz de arrancar los sistemas en vivo, tales como los creados por live-build. Ésto incluye las ISOs de Debian Live, archivos comprimidos en tar de netboot, 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.