Manual Debian Live

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 en este documento
1.4.1 Aplicar cambios
1.4.2 Traducción

2. Acerca del Proyecto Debian Live

2.1 Motivación
2.1.1 Desventajas en los sistemas Live actuales
2.1.2 El porqué de crear un Sistema Live 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 Live
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 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 Primeros pasos: creación de una imagen ISO híbrida
4.3 Usar una imagen ISO híbrida
4.3.1 Grabar una imagen ISO en un medio físico.
4.3.2 Copiar una imagen ISO híbrida a un dispositivo USB
4.3.3 Arrancar los medios en vivo
4.4 Usar una máquina virtual para pruebas
4.4.1 Probar una imagen ISO con QEMU
4.4.2 Probar una imagen ISO con virtualbox-ose
4.5 Crear una imagen HDD
4.6 Utilizar una imágen HDD
4.6.1 Probar una imágen HDD con Qemu
4.6.2 Usar el espacio libre en el dispositivo USB
4.7 Creación de una imagen de arranque en red
4.7.1 Servidor DHCP
4.7.2 Servidor TFTP
4.7.3 Servidor NFS
4.7.4 Cómo probar el arranque en red
4.7.5 Qemu
4.7.6 VMWare Player

5. Descripción general de las herramientas

5.1 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 Utilización de auto para gestionar los cambios de la configuración
6.2 Un ejemplo de scripts auto.

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 Listas de paquetes predefinidas
8.2.3 Listas de paquetes locales
8.2.4 Listas de paquetes locales para binary
8.2.5 Extensión de una lista de paquetes dada mediante «includes»
8.2.6 Utilización de condiciones dentro de las listas de paquetes
8.2.7 Tareas
8.2.8 Tareas de Escritorio e Idioma
8.3 Instalar paquetes de terceros o paquetes modificados
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.1.3 Includes 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 Capas de persistencia total
10.3.2 Capas personalizadas
10.3.3 Instantáneas
10.3.4 SubText persistente
10.3.5 Remasterización parcial

11. Personalización de la imagen binaria

11.1 Gestor 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. Informes de errores.

13.1 Problemas conocidos
13.2 Reconstruir desde cero
13.3 Utilizar paquetes actualizados
13.4 Recopilar información
13.5 Aislar el fallo si es posible
13.6 Utilizar el paquete correcto sobre el que informar del error
13.6.1 En la preinstalación (bootstrap) en tiempo de creación.
13.6.2 Mientras se instalan paquetes en tiempo de creación.
13.6.3 En tiempo de arranque
13.6.4 En tiempo de ejecución
13.7 Hacer la investigación
13.8 Dónde informar de los fallos

14. Estilo de código

14.1 Compatibilidad
14.2 Sangrado
14.3 Ajuste de líneas
14.4 Variables
14.5 Miscelánea

15. Procedimientos

15.1 Subir Udebs
15.2 Principales lanzamientos
15.3 Nuevas versiones
15.3.1 Última actualización de una versión Debian
15.3.2 Plantilla para anunciar nuevas versiones.

Ejemplos

16. Ejemplos

16.1 Uso de los ejemplos
16.2 Tutorial 1: Una imagen estándar
16.3 Tutorial 2: Una utilidad de navegador web
16.4 Tutorial 3: Una imagen personalizada
16.4.1 Primera revisión
16.4.2 Segunda revisión
16.5 Un cliente VNC kiosk
16.6 Una imagen básica para un pendrive USB de 128M
16.7 Un escritorio KDE con variante local e instalador

Apéndice

17. Style guide

17.1 Guidelines for authors
17.1.1 Linguistic features
17.1.2 Procedures
17.2 Guidelines for translators
17.2.1 Translation hints

Manual Debian Live

Acerca de este manual

1. Acerca de este manual

El objetivo principal de este manual es servir como único punto de acceso a toda la documentación referente al projecto Debian Live y en particular al sofware que el proyecto crea para Debian 7.0 "wheezy". Se puede encontrar siempre una versión actualizada en ‹http://live.debian.net/

live-manual está principalmente enfocado a ayudar en la creación de un sistema en vivo y no está dirigido al usuario final de estos sistemas. Un usuario final puede encontrar información útil en las siguentes secciones: Conceptos básicos que cubre la preparación de las imágenes para arrancar un sistema desde un medio de almacenamiento o desde una red local. Personalización del comportamiento en tiempo de ejecución que describe algunas de las opciones que pueden especificarse en el indicador de arranque, como pueden ser la selección de la distribución del teclado, las variantes locales o la persistencia.

Algunos de los comandos mencionados en el texto deben ser ejecutados con privilegios de superusuario, que pueden ser obtenidos accediendo a la cuenta de root mediante la orden su o mediante la orden sudo. Para distinguir las ordenes que deben ser ejecutadas como usuario no privilegiado de las que si requieren privilegios de superusuario se ha prefijado con $ las primeras y con # las segundas. Estos símbolos no son parte de la orden.

1.1 Para el impaciente.

Aunque se cree que todo lo descrito en este manual es importante para la mayoría de los usuarios, es cierto que hay mucho material a interiorizar y que los usuarios desean experimentar con las herramientas de forma rápida y satisfactoria antes de entrar en detalles. Por lo tanto, se sugiere leer siguiendo el siguiente orden.

Primero leer el capítulo Acerca de este manual, desde el principio y terminando en la sección Términos. Después saltar hasta los tres tutoriales que están al principio de la sección Ejemplos pensados para aprender a configurar y construir imágenes de sistemas en vivo de forma básica. Se deberá leer primero Uso de los ejemplos, seguido de Tutorial 1: Una imagen estándar y Tutorial 2: Una utilidad de navegador web, para finalizar con Tutorial 3: Una imagen personalizada. Al final de estos tutoriales, el lector tendrá una visión de lo que se puede hacer con Debian Live.

Se anima a profundizar en el estudio del manual con la lectura detenida del siguiente capítulo: Conceptos básicos, y de una manera más somera el capítulo La creación de una imagen netboot, para acabar con la lectura de Descripción general de la personalización y los capítulos que le siguen. Se espera que, en este punto, el lector esté lo suficientemente motivado con lo que se puede hacer con Debian Live para leer el resto del manual, de principio a fin.

1.2 Términos

  • Sistema en vivo: Se entiende por sistema en vivo aquel sistema operativo que se puede arrancar sin instalación previa en el disco duro. Un sistema en vivo no altera ningún sistema operativo previamente instalado ni ningún fichero existente en el disco duro de la máquina a menos que se le instruya para hacerlo. Los sistemas en vivo son arrancados típicamente desde medios extraíbles como CD, DVD o llaves USB. Algunos pueden también arrancar desde la red local.
  • Debian Live: Es un subproyecto de Debian que mantiene los paquetes Debian live-boot, live-build, live-config y live-manual.
  • Sistema Debian Live: Es un sistema en vivo que utiliza programas del sistema operativo Debian y que puede ser arrancado desde medios extraíbles como CD, DVD o llaves USB, desde red local (mediante imágenes netboot) o desde Internet (utilizando la opción de arranque fetch=URL).
  • Sistema huésped: Es el conjunto de herramientas y equipo utilizado para crear el sistema en vivo.
  • Sistema objetivo: Es el conjunto de herramientas y equipo donde se ejecutará el sistema en vivo.
  • live-boot: Es una colección de scripts que serán responsables de arrancar el sistema en vivo. live-boot fue anteriormente una parte del paquete live-initramfs.
  • live-build: Es una colección de scripts utilizados para construir sistemas Debian Live personalizados. live-build fue conocido anteriormente como live-helper, y en una versión anterior como live-package.
  • live-config: Es una colección de scripts utilizados para configurar un sistema en vivo durante el proceso de arranque. live-config fue anteriormente parte del paquete live-initramfs.
  • live-manual: Este documento forma parte de un paquete llamado live-manual.
  • Instalador de Debian (Debian Installer o d-i): Es el mecanismo oficial de instalación para la distribución Debian.
  • Parámetros de arranque: Parámetros que son entregados al gestor de arranque (bootloader) para modificar el comportamiento del kernel o del conjunto de scripts live-config. Son llamados también Parámetros de kernel u Opciones de arranque.
  • chroot: El programa chroot, chroot(8), permite ejecutar diferentes instancias de un entorno GNU/Linux en un solo sistema de manera simultánea sin necesidad de reiniciar el sistema.
  • Imagen binaria: Es un fichero binario que contiene el sistema en vivo. Su nombre puede ser binary.iso o binary.img dependiendo de su formato.
  • Distribución objetivo: Es la versión de la distribución Debian en la cual estará basado el sistema en vivo que puede diferir de la versión de la distribución en el sistema huésped.
  • stable/testing/unstable: La distribución stable contiene la última distribución Debian oficialmente publicada. La distribución testing está en la rampa de salida para ser la próxima distribución stable. La principal ventaja de utilizar esta distribución es que tiene versiones de programas más recientes si se compara con la versión stable. La distribución unstable es dónde se realiza el desarrollo de Debian. Generalmente esta distribución es usada por los desarrolladores y aquellos que les gusta vivir al filo de lo imposible. A lo largo del manual, se usan sus nombres en clave, como por ejemplo wheezy o sid, ya que es lo que las mismas herramientas reconocen.
  • 1.3 Autores

    Lista de autores (en orden alfabético):

  • Ben Armstrong
  • Brendan Sleight
  • Chris Lamb
  • Daniel Baumann
  • Franklin Piat
  • Jonas Stein
  • Kai Hendry
  • Marco Amadori
  • Mathieu Geli
  • Matthias Kirschner
  • Richard Nelson
  • Trent W. Buck
  • 1.4 Cómo contribuir en este documento

    Este manual se ha creado como un proyecto comunitario y cualquier propuesta para su mejora u otras contribuciones son siempre bienvenidas. La mejor forma de hacer una contribución es enviarla a la lista de correo. Ver la sección Contacto para más información.

    Cuando se envía una contribución se debe identificar claramente su copyright e incluir la declaración de licencia. Se hace notar que para ser aceptada, una contribución debe ser licenciada bajo la misma licencia que el resto del documento, esto es, GPL versión 3 o posterior.

    Los originales de este manual se mantienen utilizando el sistema de control de versiones Git. Se puede obtener la copia más actualizada ejecutando la siguiente orden:

    $ git clone git://live.debian.net/git/live-manual.git

    Antes de enviar una contribución se debería realizar una visualización del trabajo realizado. Para ello asegurarse de tener instalados los paquetes necesarios para la construcción de live-manual ejecutando la siguiente orden:

    # apt-get install make po4a sisu-complete libnokogiri-ruby

    Se puede realizar la construcción del manual posicionándose en el directorio de nivel superior, o sea, en el directorio clonado mediante Git y ejecutando la siguiente orden:

    $ make build

    Ya que la construcción del manual para todos los idiomas soportados tarda un rato, puede ser mejor crear un solo idioma. Esto puede realizarse ejecutando la siguiente orden:

    $ make build LANGUAGES=en

    Es posible generar el documento por formato:

    $ make build FORMATS=pdf

    O combinar ambos, por ejemplo:

    $ make build FORMATS=html LANGUAGES=it

    1.4.1 Aplicar cambios

    Cualquiera puede hacer una entrega en el repositorio. Sin embargo, a la hora de hacer grandes cambios, es conveniente enviarlos a la lista de correo para discutirlos primero. Para realizar una entrega al repositorio se debe seguir el siguiente procedimiento:

  • Obtener la clave pública de entrega:
  • $ mkdir -p ~/.ssh/identity.d
    $ wget http://live.debian.net/other/keys/git@live.debian.net \
         -O ~/.ssh/identity.d/git@live.debian.net
    $ wget http://live.debian.net/other/keys/git@live.debian.net.pub \
         -O ~/.ssh/identity.d/git@live.debian.net.pub
    $ chmod 0600 ~/.ssh/identity.d/git@live.debian.net*

  • Añadir la siguiente sección en el fichero de configuración de openssh-client:
  • $ cat >> ~/.ssh/config << EOF
    Host live.debian.net
         Hostname live.debian.net
         User git
         IdentityFile ~/.ssh/identity.d/git@live.debian.net
    EOF

  • Obtener un clon del manual mediante git utilizando ssh:
  • $ git clone git@live.debian.net:/live-manual.git
    $ cd live-manual && git checkout debian-next

  • Asegurarse de enviar los cambios a la rama debian-next y no a la rama Debian.
  • No ejecutar make commit a menos de que se actualicen las traducciones al mismo tiempo, y en ese caso, no mezclar los cambios del manual en inglés con las traducciones en el mismo commit, sino en commits separados. Ver la sección Tranducción para más detalles.
  • Hay que escribir un mensaje de entrega que consistirá en una o varias frases en ingles con significado completo, comenzando con una letra mayúscula y acabando con un punto final. Es habitual comenzar estas frases con la forma 'Fixing/Adding/Removing/Correcting/Translating', por ejemplo:
  • $ git commit -a -m "Adding a section on applying patches."

  • Para finalizar se realizará la entrega al servidor utilizando el siguiente comando:
  • $ git push

    1.4.2 Traducción

    Para enviar una traducción para un nuevo idioma, se deben seguir los siguientes pasos:

  • Traducir los ficheros about_manual.ssi.pot, about_project.ssi.pot e index.html.in.pot al idioma deseado con cualquier editor (como puede ser poedit) y enviarlos a la lista de correos. Una vez hayan sido revisados, el idioma será añadido al manual, (añadiendo los ficheros .po) y se activará en el autobuild.
  • Una vez que el nuevo idioma haya sido añadido, se puede comenzar la traducción de todos los ficheros .po exisitentes en manual/po/ de manera aleatoria.
  • No se debe olvidar la ejecución del comando make commit para asegurar que los manuales traducidos son actualizados desde los ficheros .po. Entonces se puede revisar los cambios ejecutando make build antes de realizar la entrega mediante git add ., git commit -a -m "Translating..." y git push.
  • Nota: Tener en cuenta que a pesar de que tanto make commit como make build borran el directorio «build», si se crea el manual para revisar los cambios tal y como se recomienda, es posible que se desee limpiar el árbol git antes de enviar los cambios. Para hacer esto, se puede usar make clean. Este último paso no es obligatorio, gracias al fichero .gitignore, pero es una buena práctica para evitar enviar ficheros involuntariamente.