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 a 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 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 Tareas de Escritorio e Idioma
8.2.8 Versión y tipo de kernel
8.2.9 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 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. 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

18.8 Guidelines for authors
18.8.1 Linguistic features
18.8.2 Procedures
18.9 Guidelines for translators
18.9.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 descarga de imágenes prefabricadas y la preparación de imágenes para arrancar un sistema desde un medio de almacenamiento o desde una red local, ya sea utilizando el constructor web o ejecutando live-build directamente en el sistema. 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 predeterminada 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.
  • Medio en vivo: A diferencia de sistema en vivo, el medio en vivo se refiere al CD, DVD o memoria USB donde se copia el fichero binario producido por live-build y utilizado para arrancar el sistema en vivo. Más ampliamente, el término también se refiere a cualquier lugar en el que reside el fichero binario a los efectos de iniciar el sistema en vivo, tales como la ubicación de los ficheros de arranque de red.
  • Debian Live: Es un subproyecto de Debian que mantiene, entre otros, los paquetes Debian live-boot, live-build, live-config, live-tools 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-build: Una colección de scripts utilizados para construir sistemas Debian Live personalizados.
  • live-config: Es una colección de scripts utilizados para configurar un sistema en vivo durante el proceso de arranque.
  • live-tools: Una colección de scripts adicionales que se utilizan para realizar tareas útiles en un sistema en vivo en ejecución.
  • 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
  • Carlos Zuferri
  • 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 a este documento

    Este manual se ha creado como un proyecto comunitario y cualquier propuesta para su mejora u otras contribuciones son siempre bienvenidas. Ver la sección Contribuir al proyecto para obtener información detallada sobre cómo obtener la clave pública y hacer buenos commits.

    1.4.1 Aplicar cambios

    Para realizar cambios en el manual en Inglés se debe editar los ficheros adecuados en manual/en/ pero 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 ruby ruby-nokogiri sisu-complete texlive-generic-recommended

    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 buen 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 LANGUAGES=de FORMATS=html

    Después de revisar el trabajo y asegurarse de que todo está bien, no ejecutar make commit a menos de que se actualicen las traducciones al mismo tiempo, y en ese caso, no mezclar los cambios al manual en inglés con las traducciones en el mismo commit, sino en commits separados. Ver la sección Traducción para más detalles.

    1.4.2 Traducción

    Para comenzar la traducción de un idioma nuevo, se deben seguir los siguientes pasos:

  • Traducir los ficheros about_manual.ssi.pot, about_project.ssi.pot y index.html.in.pot al idioma deseado con cualquier editor (como puede ser poedit) . Enviar los ficheros .po traducidos a la lista de correo para que el equipo de traducción pueda revisar su integridad.
  • Para activar una nueva lengua en el autobuild basta con añadir los ficheros traducidos inicialmente a manual/po/${LANGUAGE}/ y ejecutar make commit. Y entonces editar manual/_sisu/home/index.html.
  • Una vez que el nuevo idioma haya sido añadido, se puede continuar la traducción de los ficheros po restantes en manual/po/ de manera aleatoria.
  • No se debe olvidar la ejecución del comando make commit para actualizar los manuales traducidos a partir de los ficheros po. Entonces se puede revisar los cambios ejecutando make build antes de git add ., git commit -m "Translating..." y git push.
  • Después de ejecutar make commit se podrá observar bastante texto en la pantalla. Básicamente son mensajes informativos sobre el estado del proceso y también algunas pistas sobre lo que se puede hacer para mejorar live-manual. A menos que se vea un error fatal, generalmente se puede proceder y enviar la contribución.

    live-manual incluye dos utilidades que pueden ser de gran ayuda para los traductores a la hora de encontrar mensajes sin traducir y mensajes difusos. La primera es "make translate". Esta activa un script que muestra en detalle cuántos mensajes sin traducir hay en cada fichero po. La segunda, "make fixfuzzy", sólo actúa sobre los mensajes difusos pero ayuda a encontrarlos y corregirlos uno por uno.

    Hay que tener en cuenta que aunque estas utilidades pueden ser de gran ayuda para traducir en la linea de comandos, se recomienda el uso de una herramienta especializada como por ejemplo poedit. Además, es una buena idea leer la documentación de debian sobre localizacion (l10n) y, especificamente para live-manual, las Directrices para los traductores.

    Nota: Se puede utilizar make clean para limpiar el árbol git antes de enviar los cambios. Este paso no es obligatorio, gracias al fichero .gitignore, pero es una buena práctica para evitar enviar ficheros involuntariamente.