:B~ Descripción general de las herramientas 1~overview-of-tools Descripción general de las herramientas 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. 2~live-build El paquete live-build 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}/: _* Los scripts tienen una ubicación central para la configuración de su funcionamiento. En /{debhelper}/, éste es el subdirectorio #{debian/}# de un árbol de paquetes. Por ejemplo, dh_install buscará, entre otros, un fichero llamado #{debian/install}# para determinar qué ficheros deben existir en un paquete binario en particular. De la misma manera, live-build almacena toda su configuración bajo un subdirectorio #{config/}#. _* Los scripts son independientes - es decir, siempre es seguro ejecutar cada comando. A diferencia de /{debhelper}/, live-build contiene las herramientas para crear un directorio de configuración en esqueleto. Esto podría ser considerado como similar a herramientas tales como /{dh-make}/. Para obtener más información acerca de estas herramientas, seguir leyendo, ya que el resto de esta sección trata sobre los cuatro comandos más importantes. En interesante notar que están precedidos por #{lb}# que es una función genérica para todos los comandos de live-build. _* *{lb config}*: Responsable de inicializar un directorio de configuración para la creación de un sistema en vivo. Ver {El comando lb config}#lb-config para más información. _* *{lb build}*: Responsable de iniciar la creación de un sistema en vivo. Ver {El comando lb build}#lb-build para más información. _* *{lb clean}*: Responsable de la eliminación de partes de la creación de un sistema en vivo. Ver {El comando lb clean}#lb-clean para más información. 3~lb-config El comando #{lb config}# Como se comentó en {live-build}#live-build, los scripts que componen live-build obtienen su configuración gracias al comando #{source}# 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 inicial. Ejecutar #{lb config}# sin argumentos crea el subdirectorio #{config/}# que se completa con algunas opciones por defecto en ficheros de configuración y dos árboles de subdirectorios en forma de esqueleto llamados #{auto/}# y #{local/}#. code{ $ lb config [2015-01-06 19:25:58] lb config P: Creating config tree for a debian/stretch/i386 system P: Symlinking hooks... }code Utilizar #{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 adelante, una configuración más completa a través de #{auto/config}# (ver {Gestionar una configuración}#managing-a-configuration para más detalles). Normalmente, se tendrá que especificar algunas opciones. Por ejemplo, para especificar que gestor de paquetes se desea utilizar durante la construcción de la imagen: code{ $ lb config --apt aptitude }code Es posible especificar muchas opciones, tales como: code{ $ lb config --binary-images netboot --bootappend-live "boot=live components hostname=live-host username=live-user" ... }code Una lista completa de opciones está disponible en la página de manual #{lb_config}#. 3~lb-build El comando #{lb build}# 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. 3~lb-clean El comando #{lb clean}# 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. 2~live-boot El paquete live-boot 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. 2~live-config El paquete live-config 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.