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

5. Descripción general de las herramientas

5.1 El paquete live-build
5.1.1 El comando lb config
5.1.2 El comando lb build
5.1.3 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

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

9. Personalización de contenidos

Este capítulo trata, no solamente de una mera descripción de cómo seleccionar los paquetes a incluir en el sistema en vivo, sino que además presenta cómo hacer el «ajuste fino» de la personalización de los contenidos del propio sistema. Los «includes» permiten adjuntar o reemplazar cualquier fichero en la imagen en vivo a crear, los scripts gancho (hooks) permiten ejecutar cualquier orden en las diferentes etapas de creación y en el momento del arranque y por último, la preconfiguración permite configurar paquetes cuando son instalados, suministrando las respuestas a las preguntas de debconf.

9.1 Includes

Idealmente, un sistema en vivo debería incluir solamente los ficheros proporcionados por los paquetes sin modificar. Sin embargo, algunas veces es conveniente incluir o modificar algún contenido mediante ficheros. La utilización de includes posibilita la inclusión, modificación o cambio de cualquier fichero en la imagen en vivo a crear. live-build utiliza dos mecanismos:

Para más infomación acerca de la diferencia entre las imágenes "Live" y "binary" ver Términos

9.1.1 Includes locales en Live/chroot

Los includes locales en chroot se utilizan para incluir o reemplazar ficheros en el sistema de ficheros Live/chroot de manera que puedan ser utilizados en el sistema en vivo. Una utilización típica de estos includes puede ser rellenar el directorio (/etc/skel) usado por el sistema Live para crear el directorio home del usuario. Otra utilización típica es suministrar ficheros de configuración que pueden ser incluidos o reemplazados en la imagen sin necesidad de realizar procesado alguno; Si se necesita realizar algún procesado de estos ficheros ver la sección Scripts gancho locales en Live/chroot

Para incluir ficheros solamente hace falta añadirlos al directorio de configuración config/includes.chroot. Habrá una relación directa entre este directorio y el directorio raíz / del sistema en vivo. Por ejemplo, si se desea añadir un fichero para que sea el fichero /var/www/index.html del sistema en vivo se puede hacer lo siguiente:

$ mkdir -p config/includes.chroot/var/www
$ cp /path/to/my/index.html config/includes.chroot/var/www

El directorio de configuración presentará la siguiente jerarquía:

-- config
    [...]
     |-- includes.chroot
     |   `-- var
     |       `-- www
     |           `-- index.html
    [...]

Los includes locales en chroot serán instalados después de la instalación de los paquetes de manera que los includes sobreescribirán cualquier fichero que los paquetes puedan haber instalado.

9.1.2 Includes locales en Binary

Se puede incluir material como documentación, videos, etc en el sistema de ficheros del medio (USB, CDROM, etc) donde se grabará la imagen de manera que sea accesible nada más insertar el medio sin necesidad de arrancar el sistema en vivo. Para esto se utilizan los includes locales en Binary. Funciona de manera similar a los includes locales en chroot comentados anteriormente. Por ejemplo, supongamos que en el medio de instalación se desea añadir unos ficheros con videos de demostración ~/video_demo.* sobre el funcionamiento del sistema en vivo de manera que el usuario pueda acceder a ellos a través de la página de indice HTML. Simplemente se debe copiar el material en config/includes.binary/ de la siguiente manera:

$ cp ~/video_demo.* config/includes.binary/

Los ficheros aparecerán ahora en el directorio raíz del medio en vivo.

9.2 Scripts gancho (Hooks)

Los scripts gancho permiten ejecutar órdenes para personalizar la imagen en las etapas chroot y binary.

9.2.1 Scripts gancho locales en Live/chroot

Para ejecutar órdenes en la etapa chroot se deben crear scripts gancho (hooks) con el sufijo .hook.chroot que contengan dichas ordenes a ejecutar y depositarlos en el directorio config/hooks/. Estos scripts serán ejecutados en el entorno del chroot después de que el resto de las tareas de preparación del chroot han sido realizadas. Se debe asegurar que previamente se han instalado en el entorno chroot cualquier paquete, fichero u órden que necesiten los scripts gancho. El paquete live-build instala en el directorio /usr/share/doc/live-build/examples/hooks del sistema huésped unos cuantos scripts gancho para realizar tareas habituales de personalización del entorno chroot que pueden ser copiados o referenciados mediante enlace simbólico en la propia configuración.

9.2.2 Scripts gancho en tiempo de arranque

Para ejecutar ordenes en el arranque del sistema en vivo, se puede suministrar scripts gancho a live-config depositándolos en el directorio config/includes.chroot/lib/live/config/, tal y como se explica en la sección de "Personalización" de la página de manual de live-config. Es interesante examinar los scripts gancho que trae de serie live-config que pueden verse en /lib/live/config/ y fijarse en la secuencia de números. Cuando se vaya a utilizar scripts propios deben ser prefijados con un número para indicar el orden de ejecución. Otra posibilidad es utilizar un paquete personalizado tal y como se describe en Instalar paquetes modificados o de terceros.

9.2.3 Scripts gancho locales en Binary

Para ejecutar comandos en la etapa Binary se deben crear scripts gancho con el sufijo .hook.binary que contengan las ordenes y depositarlos en el directorio config/hooks/. Los scripts gancho se ejecutarán después de finalizar el resto de procesos de la etapa pero antes de crear los checksum con binary_checksum que es el último proceso que se ejecuta en esta etapa. Los scripts gancho no se ejecutan en el entorno del chroot, así que hay que tener cuidado de no modificar cualquier fichero fuera del árbol de creación, o se dañará el sistema de creación. En /usr/share/doc/live-build/examples/hooks se pueden ver varios ejemplos de scripts gancho genéricos que permiten tareas de personalización para la etapa Binary. Estos scripts pueden ser utilizados en la propia configuración copiándolos o creando enlaces simbólicos.

9.3 Preconfiguración de las preguntas de Debconf

Los ficheros del directorio config/preseed/ con el sufijo .cfg seguido por la etapa (.chroot o .binary) son ficheros de preconfiguración para debconf. live-build instalará estos ficheros mediante debconf-set-selections durante la etapa correspondiente.

Ver debconf(7) en el paquete debconf para obtener más información acerca de debconf.