Manual de Live Systems

Acerca de este manual

1. Acerca de este manual

1.1 Para el impaciente.
1.2 Términos
1.3 Autores
1.4 Cómo contribuir a este documento
1.4.1 Aplicar cambios
1.4.2 Traducción

2. Acerca del Live Systems Project

2.1 Motivación
2.1.1 Desventajas de los sistemas en vivo actuales
2.1.2 El porqué de crear un sistema en vivo propio.
2.2 Filosofía
2.2.1 Solamente paquetes sin modificación alguna de Debian «main»
2.2.2 Sin configuración especial para el sistema en vivo
2.3 Contacto

Usuario

3. Instalación

3.1 Requisitos
3.2 Instalación de live-build
3.2.1 Desde el repositorio Debian.
3.2.2 A partir del código fuente
3.2.3 A partir de «instantáneas»
3.3 Instalación de live-boot y live-config
3.3.1 Desde el repositorio Debian.
3.3.2 A partir del código fuente
3.3.3 A partir de «instantáneas»

4. Conceptos básicos

4.1 ¿Qué es un sistema en vivo?
4.2 Descarga de imágenes prefabricadas
4.3 Uso del servicio de creación de imágenes web
4.3.1 Uso y advertencias del servicio de creación de imágenes web
4.4 Primeros pasos: creación de una imagen ISO híbrida
4.5 Usar una imagen ISO híbrida
4.5.1 Grabar una imagen ISO en un medio físico.
4.5.2 Copiar una imagen ISO híbrida a un dispositivo USB
4.5.3 Usar el espacio libre en el dispositivo USB
4.5.4 Arrancar el medio en vivo
4.6 Usar una máquina virtual para pruebas
4.6.1 Probar una imagen ISO con QEMU
4.6.2 Probar una imagen ISO con VirtualBox
4.7 Construir y utilizar una imágen HDD
4.8 Creación de una imagen de arranque en red
4.8.1 Servidor DHCP
4.8.2 Servidor TFTP
4.8.3 Servidor NFS
4.8.4 Cómo probar el arranque en red
4.8.5 Qemu
4.9 Arrancar desde internet
4.9.1 Conseguir los ficheros para arrancar desde internet
4.9.2 Arrancar imágenes webboot

5. Descripción general de las herramientas

5.1 El paquete live-build
5.1.1 El comando lb init
5.1.2 El comando lb config
5.1.3 El comando lb build
5.1.4 El comando lb clean
5.2 El paquete live-boot
5.3 El paquete live-config

6. Gestionar una configuración

6.1 Gestionar cambios en la configuración
6.1.1 ¿Por qué utilizar scripts auto? ¿Qué hacen?
6.1.2 Usar scripts auto de ejemplo
6.2 Clonar una configuración publicada a través de Git

7. Descripción general de la personalización.

7.1 Configuración en el momento de la creación vs en el momento del arranque
7.2 Etapas de la creación
7.3 Opciones para lb config en ficheros
7.4 Tareas de personalización

8. Personalización de la instalación de paquetes

8.1 Origen de los paquetes
8.1.1 Distribución, áreas de archivo y modo
8.1.2 Réplicas de Distribución Debian
8.1.3 Réplicas de Distribution utilizadas durante la creación
8.1.4 Réplicas de distribución Debian utilizadas en la ejecución.
8.1.5 Repositorios adicionales
8.2 Selección de los paquetes a instalar
8.2.1 Listas de paquetes
8.2.2 Utilizar metapaquetes
8.2.3 Listas de paquetes locales
8.2.4 Listas de paquetes locales para la etapa binary
8.2.5 Generar listas de paquetes
8.2.6 Utilización de condiciones dentro de las listas de paquetes
8.2.7 Eliminación paquetes durante la instalación
8.2.8 Tareas de Escritorio e Idioma
8.2.9 Versión y tipo de kernel
8.2.10 Kernels personalizados
8.3 Instalar paquetes modificados o de terceros
8.3.1 Método packages.chroot para instalar paquetes personalizados
8.3.2 Método de repositorio APT para instalar paquetes personalizados
8.3.3 Paquetes personalizados y APT
8.4 Configurar APT en la creación
8.4.1 Utilizar apt o aptitude
8.4.2 Utilización de un proxy con APT
8.4.3 Ajuste de APT para ahorrar espacio
8.4.4 Pasar opciones a apt o a aptitude
8.4.5 APT pinning

9. Personalización de contenidos

9.1 Includes
9.1.1 Includes locales en Live/chroot
9.1.2 Includes locales en Binary
9.2 Scripts gancho (Hooks)
9.2.1 Scripts gancho locales en Live/chroot
9.2.2 Scripts gancho en tiempo de arranque
9.2.3 Scripts gancho locales en Binary
9.3 Preconfiguración de las preguntas de Debconf

10. Personalización del comportamiento en tiempo de ejecución.

10.1 Personalización del usuario por defecto del sistema en vivo
10.2 Personalización de las variantes locales e idioma
10.3 Persistencia
10.3.1 El fichero persistence.conf
10.3.2 Utilizar varios medios persistentes
10.4 Utilizar persistencia con cifrado

11. Personalización de la imagen binaria

11.1 Gestores de arranque
11.2 Metadatos ISO

12. Personalización del Instalador de Debian

12.1 Tipos de imágenes según el instalador
12.2 Personalizando el Instalador de Debian mediante preconfiguración
12.3 Personalizar el contenido del Instalador de Debian

Proyecto

13. Contribuir al proyecto

13.1 Realizar cambios

14. Informes de errores.

14.1 Problemas conocidos
14.2 Reconstruir desde cero
14.3 Utilizar paquetes actualizados
14.4 Recopilar información
14.5 Aislar el fallo si es posible
14.6 Utilizar el paquete correcto sobre el que informar del error
14.6.1 En la preinstalación (bootstrap) en tiempo de creación.
14.6.2 Mientras se instalan paquetes en tiempo de creación.
14.6.3 En tiempo de arranque
14.6.4 En tiempo de ejecución
14.7 Hacer la investigación
14.8 Dónde informar de los fallos

15. Estilo de código

15.1 Compatibilidad
15.2 Sangrado
15.3 Ajuste de líneas
15.4 Variables
15.5 Miscelánea

16. Procedimientos

16.1 Principales lanzamientos
16.2 Nuevas versiones
16.2.1 Última actualización de una versión Debian
16.2.2 Plantilla para anunciar nuevas versiones.

17. Repositorios Git

17.1 Manejo de múltiples repositorios

Ejemplos

18. Ejemplos

18.1 Uso de los ejemplos
18.2 Tutorial 1: Una imagen predeterminada
18.3 Tutorial 2: Una utilidad de navegador web
18.4 Tutorial 3: Una imagen personalizada
18.4.1 Primera revisión
18.4.2 Segunda revisión
18.5 Un cliente VNC kiosk
18.6 Una imagen básica para un pendrive USB de 128MB
18.7 Un escritorio GNOME con variante local e instalador

Apéndice

19. Guía de estilo

19.1 Instrucciones para los autores
19.1.1 Aspectos lingüísticos
19.1.2 Procedimientos
19.2 Directrices para los traductores
19.2.1 Consejos de traducción

Metadata

Manual de Live Systems

Usuario

5. 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.

5.1 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:

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.

5.1.1 El comando lb init

Como se comentó en 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 init para crear el esqueleto de directorios de configuración inicial.

El comando lb init crea los siguientes directorios dentro de config/: hooks/, includes/, varios subdirectorios de includes para cada diferente etapa del proceso de construcción y package-lists/. Este último incluye una lista de varios paquetes de gran importancia para el funcionamiento de un sistema en vivo, live-boot, live-config y live-config-sysvinit.

5.1.2 El comando lb config

Ejecutar lb config sin argumentos completa 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/.

$ lb config
[2014-04-25 17:14:34] lb config
P: Updating config tree for a debian/wheezy/i386 system

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 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:

$ lb config --apt aptitude

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.

5.1.3 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.

5.1.4 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.

5.2 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.

5.3 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.