Está en la página 1de 69

Manual Debian Live

Proyecto Debian Live <debian-live@lists.debian.org>

7 de mayo 2013
Copyright © 2006-2013 Debian Live Project;
License: Este programa es software libre: puede ser
redistribuido y/o modificado bajo los términos de la GNU
General Public License publicada por la Free Software
Foundation, bien de la versión 3 de la Licencia, o (a su
elección) cualquier versión posterior.

Este programa se distribuye con la esperanza de que sea


útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía
implícita de COMERCIALIZACIÓN o IDONEIDAD PARA UN
PROPÓSITO PARTICULAR. Consulte la GNU General Public
License para más detalles.

Debería haber recibido una copia de la General Public


License GNU junto con este programa. Si no, vea
‹http://www.gnu.org/licenses/›.

El texto completo de la GNU Licencia Pública General se


pueden encontrar en /usr/share/common-licenses/GPL-
3

ii
Contents

Contents 3.3.3 A partir de «instantáneas» . . . . . . . 8


4. Conceptos básicos . . . . . . . . . . . . . . . . . . 9
Manual Debian Live 1 4.1 ¿Qué es un sistema en vivo? . . . . . . . . 9
4.2 Descarga de imágenes prefabricadas . . . 10
Acerca de este manual 1 4.3 Uso del servicio de creación de imágenes
1. Acerca de este manual . . . . . . . . . . . . . . . . 1 web . . . . . . . . . . . . . . . . . . . . 10
1.1 Para el impaciente. . . . . . . . . . . . . . . 1 4.3.1 Uso y advertencias del servicio de
1.2 Términos . . . . . . . . . . . . . . . . . . . 1 creación de imágenes web . . . . . . . 10
1.3 Autores . . . . . . . . . . . . . . . . . . . . 3 4.4 Primeros pasos: creación de una imagen
1.4 Cómo contribuir a este documento . . . . . 3 ISO híbrida . . . . . . . . . . . . . . . . 11
1.4.1 Aplicar cambios . . . . . . . . . . . . . 3 4.5 Usar una imagen ISO híbrida . . . . . . . . 11
1.4.2 Traducción . . . . . . . . . . . . . . . . 4 4.5.1 Grabar una imagen ISO en un medio
2. Acerca del Proyecto Debian Live . . . . . . . . . . 4 físico. . . . . . . . . . . . . . . . . . . . 11
2.1 Motivación . . . . . . . . . . . . . . . . . . . 4 4.5.2 Copiar una imagen ISO híbrida a un
2.1.1 Desventajas en los sistemas Live dispositivo USB . . . . . . . . . . . . . . 12
actuales . . . . . . . . . . . . . . . . . . 4 4.5.3 Usar el espacio libre en el dispositivo
2.1.2 El porqué de crear un Sistema Live USB . . . . . . . . . . . . . . . . . . . . 12
propio. . . . . . . . . . . . . . . . . . . . 5 4.5.4 Arrancar el medio en vivo . . . . . . . . 12
2.2 Filosofía . . . . . . . . . . . . . . . . . . . . 5 4.6 Usar una máquina virtual para pruebas . . . 13
2.2.1 Solamente paquetes sin modificación 4.6.1 Probar una imagen ISO con QEMU . . 13
alguna de Debian «main» . . . . . . . . 5 4.6.2 Probar una imagen ISO con virtualbox 14
2.2.2 Sin configuración especial para el 4.7 Construir y utilizar una imágen HDD . . . . 14
Sistema Live . . . . . . . . . . . . . . . 5
4.8 Creación de una imagen de arranque en red 15
2.3 Contacto . . . . . . . . . . . . . . . . . . . . 6
4.8.1 Servidor DHCP . . . . . . . . . . . . . 16
Usuario 6 4.8.2 Servidor TFTP . . . . . . . . . . . . . . 16
3. Instalación . . . . . . . . . . . . . . . . . . . . . . . 6 4.8.3 Servidor NFS . . . . . . . . . . . . . . . 16
3.1 Requisitos . . . . . . . . . . . . . . . . . . . 6 4.8.4 Cómo probar el arranque en red . . . . 17
3.2 Instalación de live-build . . . . . . . . . . . 6 4.8.5 Qemu . . . . . . . . . . . . . . . . . . . 17
3.2.1 Desde el repositorio Debian. . . . . . . 7 5. Descripción general de las herramientas . . . . . . 17
3.2.2 A partir del código fuente . . . . . . . . 7 5.1 El paquete live-build . . . . . . . . . . . . . 17
3.2.3 A partir de «instantáneas» . . . . . . . 7 5.1.1 El comando lb config . . . . . . . . . . 18
3.3 Instalación de live-boot y live-config . . . . 7 5.1.2 El comando lb build . . . . . . . . . . . 18
3.3.1 Desde el repositorio Debian. . . . . . . 7 5.1.3 El comando lb clean . . . . . . . . . . . 18
3.3.2 A partir del código fuente . . . . . . . . 8 5.2 El paquete live-boot . . . . . . . . . . . . . 19

iii
Contents

5.3 El paquete live-config . . . . . . . . . . . . 19 8.2.9 Kernels personalizados . . . . . . . . . 29


6. Gestionar una configuración . . . . . . . . . . . . . 19 8.3 Instalar paquetes modificados o de terceros 29
6.1 Gestionar cambios en la configuración . . . 19 8.3.1 Método packages.chroot para instalar
6.1.1 ¿Por qué utilizar scripts auto? ¿Qué paquetes personalizados . . . . . . . . 30
hacen? . . . . . . . . . . . . . . . . . . . 19 8.3.2 Método de repositorio APT para instalar
6.1.2 Usar scripts auto de ejemplo . . . . . . 20 paquetes personalizados . . . . . . . . 30
6.2 Clonar una configuración publicada a través 8.3.3 Paquetes personalizados y APT . . . . 30
de Git . . . . . . . . . . . . . . . . . . . 20 8.4 Configurar APT en la creación . . . . . . . . 30
7. Descripción general de la personalización. . . . . . 21 8.4.1 Utilizar apt o aptitude . . . . . . . . . . 31
7.1 Configuración en el momento de la creación 8.4.2 Utilización de un proxy con APT . . . . 31
vs en el momento del arranque . . . . . 21 8.4.3 Ajuste de APT para ahorrar espacio . . 31
7.2 Etapas de la creación . . . . . . . . . . . . 22 8.4.4 Pasar opciones a apt o a aptitude . . . 32
7.3 Opciones para lb config en ficheros . . . . . 22 8.4.5 APT pinning . . . . . . . . . . . . . . . 32
7.4 Tareas de personalización . . . . . . . . . . 23 9. Personalización de contenidos . . . . . . . . . . . . 33
8. Personalización de la instalación de paquetes . . . 23 9.1 Includes . . . . . . . . . . . . . . . . . . . . 33
8.1 Origen de los paquetes . . . . . . . . . . . 23 9.1.1 Includes locales en Live/chroot . . . . . 34
8.1.1 Distribución, áreas de archivo y modo . 23 9.1.2 Includes locales en Binary . . . . . . . 34
8.1.2 Réplicas de Distribución Debian . . . . 24 9.2 Scripts gancho (Hooks) . . . . . . . . . . . 34
8.1.3 Réplicas de Distribution utilizadas 9.2.1 Scripts gancho locales en Live/chroot . 35
durante la creación . . . . . . . . . . . . 24 9.2.2 Scripts gancho en tiempo de arranque 35
8.1.4 Réplicas de distribución Debian 9.2.3 Scripts gancho locales en Binary . . . . 35
utilizadas en la ejecución. . . . . . . . . 24 9.3 Preconfiguración de las preguntas de
8.1.5 Repositorios adicionales . . . . . . . . 25 Debconf . . . . . . . . . . . . . . . . . . 35
8.2 Selección de los paquetes a instalar . . . . 25 10. Personalización del comportamiento en tiempo de
8.2.1 Listas de paquetes . . . . . . . . . . . 26 ejecución. . . . . . . . . . . . . . . . . . . . . . . 35
8.2.2 Utilizar metapaquetes . . . . . . . . . . 26 10.1 Personalización del usuario por defecto del
8.2.3 Listas de paquetes locales . . . . . . . 26 sistema en vivo . . . . . . . . . . . . . . 36
8.2.4 Listas de paquetes locales para la etapa 10.2 Personalización de las variantes locales e
binary . . . . . . . . . . . . . . . . . . . 27 idioma . . . . . . . . . . . . . . . . . . . 36
8.2.5 Generar listas de paquetes . . . . . . . 27 10.3 Persistencia . . . . . . . . . . . . . . . . . 38
8.2.6 Utilización de condiciones dentro de las 10.3.1 El fichero persistence.conf . . . . . . 39
listas de paquetes . . . . . . . . . . . . 27 10.3.2 Utilizar varios medios persistentes . . 40
8.2.7 Tareas de Escritorio e Idioma . . . . . . 28 11. Personalización de la imagen binaria . . . . . . . 40
8.2.8 Versión y tipo de kernel . . . . . . . . . 28 11.1 Gestor de arranque . . . . . . . . . . . . . 40

iv
Contents

11.2 Metadatos ISO . . . . . . . . . . . . . . . 41 16.2 Nuevas versiones . . . . . . . . . . . . . . 50


12. Personalización del Instalador de Debian . . . . . 41 16.2.1 Última actualización de una versión
12.1 Tipos de imágenes según el instalador . . 41 Debian . . . . . . . . . . . . . . . . . . . 50
12.2 Personalizando el Instalador de Debian 16.2.2 Plantilla para anunciar nuevas
mediante preconfiguración . . . . . . . . 42 versiones. . . . . . . . . . . . . . . . . . 50
12.3 Personalizar el contenido del Instalador de 17. Repositorios Git . . . . . . . . . . . . . . . . . . . 51
Debian . . . . . . . . . . . . . . . . . . . 43 17.1 Manejo de múltiples repositorios . . . . . . 52

Proyecto 43 Ejemplos 52
13. Contribuir al proyecto . . . . . . . . . . . . . . . . 43 18. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . 52
13.1 Realizar cambios . . . . . . . . . . . . . . 44 18.1 Uso de los ejemplos . . . . . . . . . . . . 52
14. Informes de errores. . . . . . . . . . . . . . . . . . 45 18.2 Tutorial 1: Una imagen predeterminada . . 53
14.1 Problemas conocidos . . . . . . . . . . . . 45 18.3 Tutorial 2: Una utilidad de navegador web 53
14.2 Reconstruir desde cero . . . . . . . . . . . 45 18.4 Tutorial 3: Una imagen personalizada . . . 53
14.3 Utilizar paquetes actualizados . . . . . . . 45 18.4.1 Primera revisión . . . . . . . . . . . . 54
14.4 Recopilar información . . . . . . . . . . . . 45 18.4.2 Segunda revisión . . . . . . . . . . . . 55
14.5 Aislar el fallo si es posible . . . . . . . . . 46 18.5 Un cliente VNC kiosk . . . . . . . . . . . . 55
14.6 Utilizar el paquete correcto sobre el que 18.6 Una imagen básica para un pendrive USB
informar del error . . . . . . . . . . . . . 46 de 128MB . . . . . . . . . . . . . . . . . 56
14.6.1 En la preinstalación (bootstrap) en 18.7 Un escritorio GNOME con variante local e
tiempo de creación. . . . . . . . . . . . . 47 instalador . . . . . . . . . . . . . . . . . 57
14.6.2 Mientras se instalan paquetes en
tiempo de creación. . . . . . . . . . . . . 47 Apéndice 58
14.6.3 En tiempo de arranque . . . . . . . . 47 18.8 Guidelines for authors . . . . . . . . . . . 58
14.6.4 En tiempo de ejecución . . . . . . . . 47 18.8.1 Linguistic features . . . . . . . . . . . 58
14.7 Hacer la investigación . . . . . . . . . . . 47 18.8.2 Procedures . . . . . . . . . . . . . . . 60
14.8 Dónde informar de los fallos . . . . . . . . 48 18.9 Guidelines for translators . . . . . . . . . . 62
15. Estilo de código . . . . . . . . . . . . . . . . . . . 48 18.9.1 Translation hints . . . . . . . . . . . . 62
15.1 Compatibilidad . . . . . . . . . . . . . . . . 48
Metadata 64
15.2 Sangrado . . . . . . . . . . . . . . . . . . 48
SiSU Metadata, document information . . . . . . . . . 64
15.3 Ajuste de líneas . . . . . . . . . . . . . . . 48
15.4 Variables . . . . . . . . . . . . . . . . . . . 49
15.5 Miscelánea . . . . . . . . . . . . . . . . . . 49
16. Procedimientos . . . . . . . . . . . . . . . . . . . . 50
16.1 Principales lanzamientos . . . . . . . . . . 50

v
Manual Debian Live

1 Manual Debian Live 7 1.1 Para el impaciente.

Aunque se cree que todo lo descrito en este manual es 8


2 Acerca de este manual
importante para la mayoría de los usuarios, es cierto
que hay mucho material a interiorizar y que los usuarios
3 1. Acerca de este manual desean experimentar con las herramientas de forma rápida
y satisfactoria antes de entrar en detalles. Por lo tanto, se
4 El objetivo principal de este manual es servir como único sugiere leer siguiendo el siguiente orden.
punto de acceso a toda la documentación referente al projecto Primero leer el capítulo ‹Acerca de este manual›, desde el 9

Debian Live y en particular al sofware que el proyecto crea principio y terminando en la sección ‹Términos›. Después
para Debian 7.0 “wheezy ”. Se puede encontrar siempre una saltar hasta los tres tutoriales que están al principio de la
versión actualizada en ‹http://live.debian.net/› sección ‹Ejemplos› pensados para aprender a configurar y
construir imágenes de sistemas en vivo de forma básica. Se
5 live-manual está principalmente enfocado a ayudar en la deberá leer primero ‹Uso de los ejemplos›, seguido de ‹Tutorial
creación de un sistema en vivo y no está dirigido al usuario 1: Una imagen predeterminada› y ‹Tutorial 2: Una utilidad de
final de estos sistemas. Un usuario final puede encontrar navegador web›, para finalizar con ‹Tutorial 3: Una imagen
información útil en las siguentes secciones: ‹Conceptos personalizada›. Al final de estos tutoriales, el lector tendrá una
básicos› que cubre la descarga de imágenes prefabricadas visión de lo que se puede hacer con Debian Live.
y la preparación de imágenes para arrancar un sistema
desde un medio de almacenamiento o desde una red Se anima a profundizar en el estudio del manual con la lectura 10

local, ya sea utilizando el constructor web o ejecutando detenida del siguiente capítulo: ‹Conceptos básicos›, y de una
live-build directamente en el sistema. ‹Personalización del manera más somera el capítulo ‹La creación de una imagen
comportamiento en tiempo de ejecución› que describe algunas netboot›, para acabar con la lectura de ‹Descripción general
de las opciones que pueden especificarse en el indicador de de la personalización› y los capítulos que le siguen. Se espera
arranque, como pueden ser la selección de la distribución del que, en este punto, el lector esté lo suficientemente motivado
teclado, las variantes locales o la persistencia. con lo que se puede hacer con Debian Live para leer el resto
del manual, de principio a fin.
6 Algunos de los comandos mencionados en el texto deben ser
ejecutados con privilegios de superusuario, que pueden ser 1.2 Términos 11

obtenidos accediendo a la cuenta de root mediante la orden


su o mediante la orden sudo. Para distinguir las ordenes que • Sistema en vivo : Se entiende por sistema en vivo aquel 12

deben ser ejecutadas como usuario no privilegiado de las que sistema operativo que se puede arrancar sin instalación
si requieren privilegios de superusuario se ha prefijado con $ previa en el disco duro. Un sistema en vivo no altera ningún
las primeras y con # las segundas. Estos símbolos no son parte sistema operativo previamente instalado ni ningún fichero
de la orden. existente en el disco duro de la máquina a menos que se le

1
Manual Debian Live

instruya para hacerlo. Los sistemas en vivo son arrancados 21 • live-tools : Una colección de scripts adicionales que se
típicamente desde medios extraíbles como CD, DVD o utilizan para realizar tareas útiles en un sistema en vivo en
llaves USB. Algunos pueden también arrancar desde la red ejecución.
local.
• live-manual : Este documento forma parte de un paquete 22

13 • Medio en vivo : A diferencia de sistema en vivo, el medio en llamado live-manual.


vivo se refiere al CD, DVD o memoria USB donde se copia • Instalador de Debian (Debian Installer o d-i) : Es el 23
el fichero binario producido por live-build y utilizado para mecanismo oficial de instalación para la distribución Debian.
arrancar el sistema en vivo. Más ampliamente, el término
también se refiere a cualquier lugar en el que reside el fichero • Parámetros de arranque : Parámetros que son entregados 24

binario a los efectos de iniciar el sistema en vivo, tales como al gestor de arranque (bootloader) para modificar el
la ubicación de los ficheros de arranque de red. comportamiento del kernel o del conjunto de scripts live-
config. Son llamados también Parámetros de kernel u
14 • Debian Live : Es un subproyecto de Debian que mantiene, Opciones de arranque.
entre otros, los paquetes Debian live-boot, live-build, live-
• chroot : El programa chroot, chroot(8), permite ejecutar 25
config, live-tools y live-manual.
diferentes instancias de un entorno GNU/Linux en un solo
15 • Sistema Debian Live : Es un sistema en vivo que utiliza sistema de manera simultánea sin necesidad de reiniciar el
programas del sistema operativo Debian y que puede ser sistema.
arrancado desde medios extraíbles como CD, DVD o llaves • Imagen binaria : Es un fichero binario que contiene 26
USB, desde red local (mediante imágenes netboot) o desde el sistema en vivo. Su nombre puede ser binary.iso o
Internet (utilizando la opción de arranque fetch=URL). binary.img dependiendo de su formato.
16 • Sistema huésped : Es el conjunto de herramientas y equipo • Distribución objetivo : Es la versión de la distribución 27
utilizado para crear el sistema en vivo. Debian en la cual estará basado el sistema en vivo que
puede diferir de la versión de la distribución en el sistema
17 • Sistema objetivo : Es el conjunto de herramientas y equipo
huésped.
donde se ejecutará el sistema en vivo.
• stable/testing/unstable : La distribución stable contiene 28
18 • live-boot : Es una colección de scripts que serán la última distribución Debian oficialmente publicada. La
responsables de arrancar el sistema en vivo. distribución testing está en la rampa de salida para ser la
19 • live-build : Una colección de scripts utilizados para construir próxima distribución stable . La principal ventaja de utilizar
sistemas Debian Live personalizados. esta distribución es que tiene versiones de programas
más recientes si se compara con la versión stable . La
20 • live-config : Es una colección de scripts utilizados para distribución unstable es dónde se realiza el desarrollo de
configurar un sistema en vivo durante el proceso de Debian. Generalmente esta distribución es usada por los
arranque. desarrolladores y aquellos que les gusta vivir al filo de lo

2
Manual Debian Live

imposible. A lo largo del manual, se usan sus nombres en 1.4.1 Aplicar cambios 46

clave, como por ejemplo wheezy o sid , ya que es lo que


las mismas herramientas reconocen. Para realizar cambios en el manual en Inglés se debe editar 47

los ficheros adecuados en manual/en/ pero antes de enviar


una contribución se debería realizar una visualización del
29 1.3 Autores
trabajo realizado. Para ello asegurarse de tener instalados
30 Lista de autores (en orden alfabético): los paquetes necesarios para la construcción de live-manual
ejecutando la siguiente orden:
31 • Ben Armstrong
48

32 • Brendan Sleight
33 • Carlos Zuferri # apt-get install make po4a ruby ruby-nokogiri sisu-complete texlive-←-
generic-recommended

34 • Chris Lamb
35 • Daniel Baumann Se puede realizar la construcción del manual posicionándose 49

en el directorio de nivel superior, o sea, en el directorio clonado


36 • Franklin Piat mediante Git y ejecutando la siguiente orden:
37 • Jonas Stein 50

38 • Kai Hendry
$ make build
39 • Marco Amadori
40 • Mathieu Geli Ya que la construcción del manual para todos los idiomas 51

41 • Matthias Kirschner soportados tarda un buen rato, puede ser mejor crear un
solo idioma. Esto puede realizarse ejecutando la siguiente
42 • Richard Nelson orden:
43 • Trent W. Buck 52

44 1.4 Cómo contribuir a este documento $ make build LANGUAGES=en

45 Este manual se ha creado como un proyecto comunitario y Es posible generar el documento por formato: 53
cualquier propuesta para su mejora u otras contribuciones son
54
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. $ make build FORMATS=pdf

3
Manual Debian Live

O combinar ambos, por ejemplo: 55 Después de ejecutar make commit se podrá observar bastante 64

56
texto en la pantalla. Básicamente son mensajes informativos
sobre el estado del proceso y también algunas pistas sobre lo
$ make build LANGUAGES=de FORMATS=html
que se puede hacer para mejorar live-manual. A menos que se
vea un error fatal, generalmente se puede proceder y enviar la
57 Después de revisar el trabajo y asegurarse de que todo está contribución.
bien, no ejecutar make commit a menos de que se actualicen live-manual incluye dos utilidades que pueden ser de gran 65
las traducciones al mismo tiempo, y en ese caso, no mezclar ayuda para los traductores a la hora de encontrar mensajes sin
los cambios al manual en inglés con las traducciones en el traducir y mensajes difusos. La primera es “make translate”.
mismo commit, sino en commits separados. Ver la sección Esta activa un script que muestra en detalle cuántos mensajes
‹Traducción› para más detalles. sin traducir hay en cada fichero po. La segunda, “make
fixfuzzy”, sólo actúa sobre los mensajes difusos pero ayuda a
58 1.4.2 Traducción encontrarlos y corregirlos uno por uno.
Hay que tener en cuenta que aunque estas utilidades pueden 66
59 Para comenzar la traducción de un idioma nuevo, se deben
ser de gran ayuda para traducir en la linea de comandos,
seguir los siguientes pasos:
se recomienda el uso de una herramienta especializada
60 • Traducir los ficheros about_manual.ssi.pot , about_project.ssi.pot como por ejemplo poedit. Además, es una buena idea leer
y index.html.in.pot al idioma deseado con cualquier editor la documentación de debian sobre localizacion (l10n) y,
(como puede ser poedit) . Enviar los ficheros .po traducidos especificamente para live-manual, las ‹Directrices para los
a la lista de correo para que el equipo de traducción pueda traductores›.
revisar su integridad.
Nota: Se puede utilizar make clean para limpiar el árbol git 67
61 • Para activar una nueva lengua en el autobuild basta con antes de enviar los cambios. Este paso no es obligatorio,
añadir los ficheros traducidos inicialmente a manual/po/- gracias al fichero .gitignore, pero es una buena práctica para
${LANGUAGE}/ y ejecutar make commit. Y entonces editar evitar enviar ficheros involuntariamente.
manual/_sisu/home/index.html.
62 • Una vez que el nuevo idioma haya sido añadido, se puede 2. Acerca del Proyecto Debian Live 68
continuar la traducción de los ficheros po restantes en
manual/po/ de manera aleatoria.
2.1 Motivación 69

63 • No se debe olvidar la ejecución del comando make commit


para actualizar los manuales traducidos a partir de los 2.1.1 Desventajas en los sistemas Live actuales 70

ficheros po. Entonces se puede revisar los cambios


ejecutando make build antes de git add ., git commit -m Cuando se comenzó el trabajo en Debian Live, ya existían 71

“Translating...” y git push. varios Sistemas Live disponibles basados en la distribución

4
Manual Debian Live

Debian y todos hacian un buen trabajo. Desde la perspectiva de 86 • No contiene ningún paquete que no forma parte del archivo
Debian, la mayoría de estos sistemas tenían alguna de estas de Debian.
desventajas: • Utiliza kernels que provienen de Debian inalterados sin 87

72 • No eran proyectos de Debian y por lo tanto no contaban con parches adicionales.


soporte desde dentro de Debian.
73 • Mezclaban paquetes de diferentes versiones, por ejemplo 2.2 Filosofía 88

testing y unstable .
2.2.1 Solamente paquetes sin modificación alguna de 89

74 • Solamente soportaban la arquitectura i386. Debian «main»


75 • Modificaban el comportamiento y/o la apariencia de los
Solamente se utilizarán paquetes del repositorio de Debian de 90
paquetes, eliminando contenido para reducirlos de tamaño.
la sección «main». La sección non-free no es parte de Debian
76 • Incluían paquetes de fuera del archivo de Debian. y por lo tanto no puede ser utilizada de ninguna de las maneras
para generar imágenes de sistema oficiales.
77 • Utilizaban kernels personalizados con parches que no eran
parte de Debian. No se modificará ningún paquete. Siempre que se necesite 91

modificar algo, se hará en coordinación con el correspondiente


78 • Eran demasiado lentos, debido a su gran tamaño, para ser mantenedor del paquete en Debian.
utilizados como sistemas de rescate.
Como excepción, los paquetes del proyecto como son 92

79 • No disponían de diferentes medios de instalación, como CDs, live-boot, live-build o live-config, pueden ser utilizados
DVDs, llaves USB o imágenes de arranque por red netboot. temporalmente desde el repositorio del proyecto, por razones
de desarrollo (por ejemplo para crear instantaneas de
80 2.1.2 El porqué de crear un Sistema Live propio. pruebas). Estos paquetes serán actualizados en Debian de
manera regular.
81 Debian es el Sistema Operativo Universal: Debian
tiene un Sistema Live para mostrar y representar el 2.2.2 Sin configuración especial para el Sistema Live 93

auténtico y verdadero Debian con las siguientes ventajas


fundamentales: En esta fase, no se creará o instalarán configuraciones 94

alternativas o de ejemplo. Se utilizarán todos los paquetes con


82 • Es un subproyecto de Debian. su configuración por defecto, tal y como quedan después de
83 • Refleja el estado (actual) de una versión Debian. una instalación normal de Debian.

84 • Se ejecuta en tantas arquitecturas como es posible. Siempre que se necesite una configuración diferente a la de por 95

defecto, se hará en coodinación con el mantenedor del paquete


85 • Consiste solamente de paquetes Debian sin modificar. Debian correspondiente.

5
Manual Debian Live

96 Se puede emplear un sistema para configurar paquetes 101 Usuario


que utiliza debconf, permitiendo la personalización de la
configuración de los paquetes que van a ser instalados en 102 3. Instalación
la imagen Debian Live que se genere, pero las ‹imágenes
en vivo prefabricadas› solamente utilizarán la configuración 103 3.1 Requisitos
por defecto, a menos que sea absolutamente necesario
hacer cambios para que funcionen en los sistemas en vivo. Para crear las imágenes de Debian Live son necesarios los 104
Siempre que sea posible, preferimos adaptar los paquetes en siguientes requisitos:
el archivo de Debian para que funcionen mejor en un sistema
en vivo en lugar de realizar cambios en nuestra cadena de • Acceso de superusuario (root) 105

herramientas o en ‹las configuraciones de las imágenes


prefabricadas›. Para más información, ver ‹Descripción • Una versión actualizada de live-build 106

general de la personalización›.
• Un intérprete de comandos compatible con POSIX, como por 107

ejemplo bash o dash

• debootstrap o cdebootstrap 108


97 2.3 Contacto
• Linux 2.6.x o superior. 109

98 • Lista de correo : El sistema de contacto principal del Tener en cuenta que no es necesario el uso de Debian o 110

proyecto es la lista de correo en ‹http://lists.debian. una distribución derivada de Debian - live-build funcionará
org/debian-live/›. Se puede enviar un correo a la lista
en casi cualquier distribución que cumpla con los requisitos
directamente dirigiéndolo a ‹debian-live@lists.debian.org› anteriores.
Los archivos históricos de la lista están disponibles en
‹http://lists.debian.org/debian-live/›. 3.2 Instalación de live-build 111

Se puede instalar live-build de varias maneras diferentes: 112


99 • IRC : Un número importante de usuarios y desarrolladores
suele estar presente en el canal #debian-live de • Desde el repositorio Debian 113

irc.debian.org (OFTC). Por favor, se debe ser paciente


cuando se espera una respuesta en el IRC. Si la respuesta • A partir del código fuente 114

no llega, se puede enviar la pregunta a la lista de correos.


• Usando instantáneas 115

Si se usa Debian, el método recomendado es instalar live-build 116

100 • BTS : El ‹Informes de errores›. a través del repositorio de Debian.

6
Manual Debian Live

3.2.1 Desde el repositorio Debian. 117 ejecutando:


128
Simplemente instalar live-build como cualquier otro 118

paquete:
# make install
119

y desinstalarlo con: 129


# apt-get install live-build
130

120 3.2.2 A partir del código fuente # make uninstall

121 live-build se desarrolla utilizando el sistema de control


de versiones Git. En los sistemas basados en Debian 3.2.3 A partir de «instantáneas» 131

se encuentra el paquete git. Para ver el último código,


ejecutar: Si no se desea crear o instalar live-build a partir del código 132

122 fuente, se puede usar instantáneas. Estas se generan


automáticamente a partir de la última versión de Git y están
$ git clone git://live.debian.net/git/live-build.git
disponibles en ‹http://live.debian.net/debian/›.

123 Se puede crear e instalar el paquete Debian ejecutando: 3.3 Instalación de live-boot y live-config 133

124
Nota: No es necesario instalar live-boot o live-config en el 134

$ cd live-build
sistema para crear sistemas personalizados de Debian Live.
$ dpkg-buildpackage -b -uc -us Sin embargo, eso no causará ningún daño y es útil por motivos
$ cd .. de referencia. Si únicamente se desea tener la documentación,
es posible instalar los paquetes live-boot-doc y live-config-doc
125 Si se desea, se podrá instalar cualquiera de los paquetes .deb de forma independiente.
recien creados con el procedimiento anterior, p.ej.
126
3.3.1 Desde el repositorio Debian. 135

# dpkg -i live-build_3.0-1_all.deb Tanto live-boot como live-config están disponibles en el 136

repositorio Debian siguiendo un procedimiento similar al


127 También se puede instalar live-build directamente en el sistema explicado en la ‹Instalación de live-build›.

7
Manual Debian Live

137 3.3.2 A partir del código fuente • Utilizar los ficheros .deb generados que proceda 146

Como live-boot y live-config son instalados por el sistema de 147


138 Para utilizar el último código fuente a partir de git, se puede
construcción live-build, la instalación de esos paquetes en
seguir el proceso siguiente. Asegurarse de estar familiarizado
el sistema anfitrión no es suficiente: se debe tratar los .deb
con los términos mencionados en ‹Términos›.
generados como si fueran paquetes personalizados. Puesto
139 • Comprobar el código fuente de live-boot y live-config que el propósito de la construcción de estos paquetes a partir
del código fuente es similar a probar cosas nuevas a corto
140
plazo antes de su lanzamiento oficial, seguir las instrucciones
de ‹Instalar paquetes modificados o de terceros› para incluir
$ git clone git://live.debian.net/git/live-boot.git
$ git clone git://live.debian.net/git/live-config.git temporalmente los ficheros necesarios en la configuración.
En particular, observar que ambos paquetes se dividen en
141 Si se desea generar estos paquetes a partir del código fuente, una parte genérica, una parte de documentación y uno o más
se puede consultar las páginas del manual para más detalles back-ends. Incluir la parte genérica, sólo uno de los back-
sobre la personalización de live-boot y live-config. ends que coincida con la configuración, y, opcionalmente, la
documentación. Suponiendo que se está construyendo una
142 • Creación de los paquetes .deb de live-boot y live-config imagen en vivo en el directorio actual y se han generado
143 Se debe crear ya sea en la distribución de destino o en un todos los .deb para una única versión de los dos paquetes
entorno chroot que contenga la plataforma de destino: es en el directorio superior, estos comandos bash copiaran
decir, si el objetivo es wheezy entonces se debe crear usando todos los paquetes necesarios, incluyendo sus back-ends por
wheezy . defecto:
148
144 Utilizar un programa creador personal como pbuilder o sbuild
si se necesita crear live-boot para una distribución de destino
$ cp ../live-boot{_,-initramfs-tools,-doc}*.deb config/packages.chroot←-
diferente del sistema de creación. Por ejemplo, para las /
imágenes en vivo de wheezy , crear live-boot en un entorno $ cp ../live-config{_,-sysvinit,-doc}*.deb config/packages.chroot/
chroot wheezy . Si la distribución de destino coincide con
la distribución actual, se puede crear directamente sobre el
sistema de creación con dpkg-buildpackage (proporcionada 3.3.3 A partir de «instantáneas» 149

por el paquete dpkg-dev ):


Se puede dejar que live-build utilice automáticamente las 150
145
últimas instantáneas de live-boot y live-config mediante la
configuración de repósitorios de terceros en el directorio
$ cd live-boot
$ dpkg-buildpackage -b -uc -us
de configuración de live-build. Suponiendo que ya se haya
$ cd ../live-config creado un árbol de configuración en el directorio actual con lb
$ dpkg-buildpackage -b -uc -us config:

8
Manual Debian Live

151 con configuración automática en tiempo de ejecución (Ver


‹Términos›).
$ lb config --archives live.debian.net Debian Live, es un sistema Debian GNU/Linux, creado para 157

una de las arquitecturas soportadas (actualmente amd64 y


i386). Se compone de las siguientes partes:
152 4. Conceptos básicos
• Imágen del kernel de Linux , normalmente llamada 158

vmlinuz*
153 Este capítulo contiene una breve descripción del proceso de
creación de las imágenes en vivo y las instrucciones para el • Imagen del Disco RAM inicial (initrd) : Un Disco RAM 159

uso de los tres tipos de imágenes más utilizadas. El tipo de configurado para el arranque de Linux, que incluya los
imagen más versátil, iso-hybrid, se puede utilizar en una módulos posiblemente necesarios para montar la imagen
máquina virtual, en medios ópticos u otros dispositivos de del sistema y algunos scripts para ponerlo en marcha.
almacenamiento USB. En ciertos casos especiales, como se • Imagen del sistema : La imagen del sistema de ficheros raíz. 160
explica más adelante, las imágenes hdd, pueden ser las más Por lo general, se utiliza un sistema de ficheros comprimido
adecuadas. El capítulo termina con instrucciones para crear SquashFS para reducir al mínimo el tamaño de la imagen
y utilizar una imagen de tipo netboot, que es un poco más de Debian Live. Hay que tener en cuenta que es de sólo
complicado debido a la configuración necesaria en el servidor. lectura. Por lo tanto, durante el arranque del sistema Debian
Es un tema ligeramente avanzado para cualquier persona que Live se utiliza un disco RAM y un mecanismo de «unión» que
no esté familiarizada con el arranque en red, pero se incluye permite escribir ficheros en el sistema en funcionamiento. Sin
aquí porque una vez que se realiza toda la configuración, es embargo, todas las modificaciones se perderán al apagar el
una forma muy conveniente para probar y desplegar imágenes equipo a menos que se use de modo opcional la persistencia
de arranque en red local sin la molestia de tratar con los (ver ‹Persistencia›).
dispositivos de almacenamiento de la imagen.
• Gestor de arranque : Una pequeña pieza de código 161
154 A lo largo de todo el capítulo se hace a menudo referencia diseñada para arrancar desde el medio de almacenamiento
al nombre de las imágenes producidas por defecto por live- escogido, posiblemente mostrando un menú o un
build. Si se ‹descarga una imagen ya creada› el nombre puede indicador de arranque para permitir la selección de
variar. opciones/configuración. Carga el kernel de Linux y su initrd
para funcionar con un sistema de ficheros asociado. Se
155 4.1 ¿Qué es un sistema en vivo? pueden usar soluciones diferentes, dependiendo del medio
de almacenamiento de destino y el formato del sistema
156 Por lo general, un sistema en vivo se refiere a un sistema de ficheros que contenga los componentes mencionados
operativo que arranca en un equipo desde un medio extraíble, anteriormente: isolinux para arrancar desde un CD o DVD
como un CD-ROM, dispositivo USB, o desde una red, listo para en formato ISO9660, syslinux para arrancar desde el disco
usar sin ningún tipo de instalación en la unidad de costumbre, duro o unidad USB desde una partición VFAT, extlinux para

9
Manual Debian Live

formatos ext2/3/4 y particiones btrfs, pxelinux para arranque Si se tiene problemas o preguntas acerca de este servicio,
de red PXE, GRUB para particiones ext2/3/4 , etc. ponerse ‹en contacto› con nosotros, proporcionando el enlace
162 Se puede utilizar live-build para crear la imagen del sistema a la página dónde se recoge la información pertinente a la
a partir de ciertas especificaciones, incluir un kernel de imagen.
Linux, su initrd y un gestor de arranque para ponerlos en
funcionamiento, todo ello en un formato que depende del 4.3.1 Uso y advertencias del servicio de creación de 167

medio de almacenamiento elegido (imagen ISO9660, imagen imágenes web


de disco, etc.)
La interfaz web actualmente no puede prevenir el uso de 168

combinaciones de opciones no válidas, y en particular, cuando


163 4.2 Descarga de imágenes prefabricadas
el cambio de una opción que normalmente (es decir, utilizando
live-build directamente) cambiaría los valores predeterminados
164 Si bien el objetivo de este manual es el desarrollo y la
de otras opciones que figuran en el formulario web, el
construcción de imágenes en vivo propias, puede que
constructor web no cambia estos valores predeterminados. En
simplemente se desee probar una de nuestras imágenes
particular, si se cambia --architectures del valor por defecto
prefabricadas, ya sea como una iniciación a su uso o como
i386 a amd64, se debe cambiar la opción correspondiente
paso previo a la construcción de imágenes personalizadas.
--linux-flavours del valor por defecto 486 to amd64. Ver la
Estas imágenes están construidas utilizando nuestro
página de manual de lb_config para para más detalles sobre
‹repositorio git live-images› y las versiones estables oficiales
la versión de live-build instalada en el constructor web. El
se publican en ‹http://www.debian.org/CD/live/›. Además, las
número de versión de live-build aparece en la parte inferior de
versiones antiguas y las futuras, así como las imágenes no
la página web del servicio de creación de imágenes.
oficiales que contienen firmware y drivers no libres están
disponibles en ‹http://live.debian.net/cdimage/release/›. El tiempo de creación de la imagen mostrado en la web es sólo 169

una estimación aproximada y puede no reflejar con exactitud la


duración que la construcción de la imagen realmente necesita.
165 4.3 Uso del servicio de creación de imágenes web
Tampoco se actualiza esta estimación una vez mostrada. Hay
166 Como un servicio a la comunidad, se ofrece una interfaz que tener un poco de paciencia. No volver a recargar la página,
web de construcción de imágenes en vivo en ‹http: ya que esto puede volver a lanzar una nueva creación de otra
//live-build.debian.net/›. Este sitio se mantiene en base al mejor
imagen con los mismos parámetros. ‹Ponerse en contacto› con
esfuerzo. Es decir, aunque nos esforzamos por mantenerlo al nosotros si no se recibe la notificación de que la imagen está
día y de que esté operativo en todo momento, así como de terminada una vez que se esté seguro de que se ha esperado lo
emitir anuncios de interrupciones importantes en el servicio, suficiente y verificado que la notificación por correo electrónico
no podemos garantizar un 100% de disponibilidad o una no ha ido a parar a la bandeja de spam.
creación de imágenes rápida, y el servicio de vez en cuando El servicio web está limitado en el tipo de imágenes que se 170

puede tener problemas que tarden algún tiempo en resolverse. pueden construir. Esto lo hace simple y a la vez eficiente de

10
Manual Debian Live

usar y mantener. Si se desea realizar personalizaciones que no Al no pasar ningún parámetro a lb config, se indica que se 177

se contemplan en la interfaz web, en el resto de este manual quiere utilizar todas las opciones por defecto. Ver‹El comando
se explica cómo crear imágenes propias con live-build. lb config› para más detalles.
Ahora que existe un jerarquía «config/», se puede crear la 178

171 4.4 Primeros pasos: creación de una imagen ISO imagen con el comando lb build:
híbrida 179

172 Independientemente del tipo de imagen, cada vez se tendrá


# lb build
que realizar los mismos pasos básicos para construir una
imagen. Como primer ejemplo, crear un directorio de trabajo,
Este proceso puede llevar un tiempo, dependiendo de la 180
cambiar a ese directorio y ejecutar la siguiente secuencia de
velocidad del ordenador y de la conexión de red. Cuando haya
comandos live-build para crear una imagen ISO híbrida básica
terminado, debería haber un fichero binary.hybrid.iso listo
que contiene sólo el sistema por defecto de Debian sin X.org.
para ser usado en el directorio actual.
Es adecuada para grabarla en un CD o DVD y también para
copiarla en un dispositivo USB.
4.5 Usar una imagen ISO híbrida 181
173 El nombre del directorio de trabajo es indiferente, pero si se
da un vistazo a los ejemplos utilizados en live-manual, es una
Después de construir o descargar una imagen ISO híbrida, las 182
buena idea utilizar un nombre que ayude a identificar la imagen
cuales se pueden obtener en ‹http://www.debian.org/CD/live/›,
con la que está trabajando en cada directorio, especialmente
el siguiente paso habitual es preparar el medio de
si se está trabajando o experimentando con distintos tipos
almacenamiento, ya sea medios ópticos CD-R(W) o DVD-R(W)
de imágenes. En este caso, vamos a construir un sistema
o llaves USB.
utilizando los valores por defecto, así que lo vamos a llamar,
por ejemplo, live-default.
4.5.1 Grabar una imagen ISO en un medio físico. 183
174

Grabar una imagen ISO es fácil. Simplemente instalar xorriso y 184


$ mkdir live-default && cd live-default
usarlo desde el intérprete de comandos para grabar la imagen.
Por ejemplo:
175 Entonces, se ejecuta el comando lb config. Esto creará una
185
jerarquía «config/» en el directorio actual que será usada por
otros comandos:
# apt-get install xorriso
176
$ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed binary.hybrid.←-
iso
$ lb config

11
Manual Debian Live

186 4.5.2 Copiar una imagen ISO híbrida a un dispositivo nombre de la partición, por ejemplo /dev/sdb2 se tiene que
USB crear un sistema de ficheros en él. Una opción posible sería
ext4.
187 Las imágenes ISO preparadas con xorriso, pueden
194
sencillamente copiarse a una llave USB con dd o con un
programa equivalente. Insertar una llave USB con un tamaño
# mkfs.ext4 ${PARTITION}
suficiente para la imagen y determinar qué dispositivo es, al
cual nos referiremos de ahora en adelante como ${USBSTICK}.
Este nombre de «dispositivo» se refiere a la llave entera como Nota: Si se desea usar el espacio extra con Windows, segun 195

por ejemplo /dev/sdb y ¡No a una partición como /dev/sdb1! parece, ese sistema operativo no puede acceder normalmente
Se puede encontrar el nombre del dispositivo correcto mirando a otra partición más que a la primera. Se han comentado
la salida de dmesg después de conectar la llave, o mejor aún algunas soluciones a este problema en nuestra ‹lista de
ejecutando ls -l /dev/disk/by-id. correo› pero según parece no hay una solución fácil.
188 Cuando se esté seguro de tener el nombre del dispositivo Recordar: Cada vez que se instale una nueva binary.hybrid.iso196
correcto, usar el comando dd para copiar la imagen a la llave. en el dispositivo, todos los datos del dispositivo se
¡Esto borrará de forma definitiva cualquier contenido perderán debido a que la tabla de particiones se
previo en la llave! sobrescribe con el contenido de la imagen, así pues,
189 realizar primero una copia de seguridad de la partición
para poder restaurarla trás actualizar la imagen en
$ dd if=binary.hybrid.iso of=${USBSTICK}
vivo.

4.5.4 Arrancar el medio en vivo 197


190 4.5.3 Usar el espacio libre en el dispositivo USB
La primera vez que se arranque desde el medio de 198
191 Si se desea usar el espacio libre después de haber instalado la almacenamiento en vivo, ya sea CD, DVD, llave USB, o
imagen binary.hybrid.iso en una llave USB, se puede usar de arranque en red PXE, primero puede ser necesario algún
un programa de particionado como gparted o parted para crear tipo de configuración en la BIOS de la máquina. Dado que las
una partición nueva en el dispositivo. La primera partición será BIOS varían mucho en sus características y combinaciones
usada por el sistema Debian en vivo. de teclas, no se puede entrar en el tema en profundidad
192 aquí. Algunas BIOS proporcionan una tecla para abrir un
menú de dispositivos de arranque que es la manera más fácil
# gparted ${USBSTICK} de hacerlo si se encuentra disponible en el sistema. De lo
contrario, se tiene que entrar en el menú de configuración de
193 Después de crear la partición, dónde ${PARTITION} es el la BIOS y cambiar el orden de arranque y colocar el dispositivo

12
Manual Debian Live

de arranque del sistema en vivo antes que el dispositivo de • Cuando se desarrolla para un hardware específico, no hay 205

arranque habitual. sustituto mejor que el propio hardware.


199 Una vez que se haya arrancado desde el medio de • A veces hay errores causados únicamente por la ejecución 206
almacenamiento, se accede a un menú de arranque. Si en una máquina virtual. En caso de duda, probar la imagen
se pulsa la tecla «enter», el sistema arrancará usando el directamente en el hardware.
modo por defecto Live y las opciones predeterminadas. Para
obtener más información acerca de las opciones de arranque, Siempre que se pueda trabajar dentro de estas limitaciones, 207

ver la opción «help» del menú y también las páginas del mirar que software VM hay disponible y elegir uno que sea
manual de live-boot y live-config que se encuentran en el adecuado según las necesidades.
sistema en vivo.
200 Suponiendo que se ha seleccionado Live y arrancado una 4.6.1 Probar una imagen ISO con QEMU 208
imagen en vivo por defecto con escritorio gráfico, después
de que los mensajes de arranque hayan pasado, se habrá La máquina virtual más versátil en Debian es QEMU. Si el 209
iniciado automáticamente una sesión como usuario user procesador tiene soporte de hardware para virtualización,
y se verá el escritorio preparado para ser usado. Si se ha utilizar el paquete qemu-kvm. En la descripción del paquete
arrancado una imagen sólo de consola como por ejemplo qemu-kvm se enumera brevemente la lista de requisitos.
‹las imágenes prefabricadas›, standard o rescue se habrá
iniciado automáticamente una sesión como usuario user y se En primer lugar, instalar qemu-kvm si el procesador lo soporta. 210

verá el cursor del intérprete de comandos preparado para ser Si no es así, instalar qemu, en cuyo caso el nombre del
usado. programa será qemu en vez de kvm en los siguientes ejemplos.
El paquete qemu-utils también es útil para la creación de
imágenes virtuales de disco con qemu-img.
201 4.6 Usar una máquina virtual para pruebas
211
202 Ejecutar las imágenes en vivo en una máquina virtual (VM)
puede ser un gran ahorro de tiempo para su desarrollo. Esto # apt-get install qemu-kvm qemu-utils
no está exento de advertencias:
203 • Para ejecutar una máquina virtual se requiere tener Arrancar una imagen ISO es sencillo: 212
suficiente memoria RAM para el sistema operativo huésped
y el anfitrión y se recomienda una CPU con soporte de 213

hardware para la virtualización.


$ kvm -cdrom binary.hybrid.iso
204 • Existen algunas limitaciones inherentes a la ejecución en una
máquina virtual, por ejemplo, rendimiento de video pobre o
limitada gama de hardware emulado. Consultar las páginas del manual para más detalles. 214

13
Manual Debian Live

4.6.2 Probar una imagen ISO con virtualbox 215 todos los aspectos, con la diferencia de que hay que especificar
-b hdd y de que el nombre de la imagen final es binary.img
216 Para probar una imagen ISO con virtualbox: que no se puede copiar en medios ópticos. Es adecuada para
217 el arranque desde dispositivos USB, discos duros USB y otros
sistemas de almacenamiento portátil. Normalmente, se puede
# apt-get install virtualbox virtualbox-qt virtualbox-dkms utilizar para este propósito una imagen ISO híbrida, pero es
posible que la BIOS no maneje adecuadamente las imágenes
$ virtualbox
híbridas, entonces es mejor utilizar una imagen hdd.
218 Crear una nueva máquina virtual, cambiar la configuración Nota: si se ha creado una imagen ISO híbrida con el ejemplo 225

de almacenamiento para utilizar binary.hybrid.iso como anterior, se tendrá que limpiar el directorio de trabajo con el
dispositivo CD/DVD y arrancar la máquina. comando lb clean (ver ‹El comando lb clean›):
219 Nota: Para probar los sistemas en vivo con soporte X.org en 226

virtualbox, se puede incluir el paquete del driver de VirtualBox


X.org, virtualbox-guest-dkms/ y /{virtualbox-guest-x11, en la # lb clean --binary
configuración de live-build. De lo contrario, la resolución se
limita a 800x600. Ejecutar el comando lb config como antes pero esta vez 227

220 especificando el tipo de imagen HDD:


228
$ echo "virtualbox-guest-dkms virtualbox-guest-x11" >> config/package-←-
lists/my.list.chroot
$ lb config -b hdd

221 Para que el paquete dkms funcione, hace falta tener instalados
también los kernel-headers para la variante del kernel utilizado. Crear ahora la imagen con el comando lb build: 229

En lugar de enumerar manualmente el paquete linux-headers 230


correspondiente en la lista de paquetes creados anteriormente,
live-build puede seleccionarlo automáticamente.
# lb build
222

Cuando termine el proceso de creación, debe haber un fichero 231


$ lb config --linux-packages "linux-image linux-header"
llamado binary.img en el directorio actual .
La imagen binaria generada contiene una partición VFAT 232

223 4.7 Construir y utilizar una imágen HDD y el gestor de arranque syslinux, lista para ser copiada
directamente en un dispositivo USB. De nuevo, dado que
224 Crear una imagen HDD es similar a una de tipo ISO híbrida en utilizar una imagen HDD es igual a usar una imagen ISO

14
Manual Debian Live

híbrida en un USB, seguir las instrucciones de ‹Usar una tiene que ejecutar un lb clean (que también eliminará la etapa
imagen ISO híbrida› con la diferencia de usar el nombre chroot).
binary.img en lugar de binary.hybrid.iso.
Ejecutar el comando lb config de la siguiente manera para 240

233 Del mismo modo, para probar una imagen HDD con Qemu, configurar la imagen de arranque en red:
instalar qemu como se describe más arriba en ‹Probar una 241
imágen ISO con QEMU›. A continuación, ejecutar kvm o qemu,
según qué versión necesita el sistema anfitrión y especificando
$ lb config -b netboot --net-root-path "/srv/debian-live" --net-root-←-
binary.img como primer disco duro. server "192.168.0.1"

234
A diferencia de las imágenes ISO y HDD, el sistema de 242

$ kvm -hda binary.img


arranque en red en sí mismo no envía la imagen del sistema
de ficheros al cliente, por eso los ficheros se deben enviar
mediante NFS. Con lb config se puede seleccionar diferentes
235 4.8 Creación de una imagen de arranque en red sistemas de ficheros en red. Las opciones --net-root-path
y --net-root-server especifican la ubicación y el servidor,
236 La siguiente secuencia de comandos creará una imagen de respectivamente, del servidor NFS en el que se encuentra
arranque en red básica que contendrá el sistema por defecto de la imagen del sistema de ficheros en el arranque. Se debe
Debian sin X.org. Se puede usar para el arranque en red. asegurar que estos se ajustan a los valores adecuados para
la red y el servidor deseados.
237 Nota: si se ha seguido algúno de los ejemplos anteriores, se
tendrá que limpiar el directorio de trabajo con el comando lb Crear ahora la imagen con el comando lb build: 243

clean: 244

238
# lb build

# lb clean
En un arranque en red, el cliente ejecuta una pequeña pieza de 245

software que generalmente se encuentra en la EPROM de la


239 En este caso concreto, un lb clean --binary no sería
tarjeta Ethernet. Este programa envía una solicitud de DHCP
suficiente para eliminar las etapas necesarias. La razón de
para obtener una dirección IP e información sobre qué hacer a
esto es que en las configuraciones de arranque en red, se
continuación. Por lo general, el siguiente paso es conseguir un
debe utilizar una configuración initramfs diferente que live-build
gestor de arranque de alto nivel a través del protocolo TFTP.
ejecuta automáticamente al crear imágenes netboot. Ya que la
Este gestor podría ser PXELINUX, GRUB, o incluso arrancar
creación del initramfs pertenece a la etapa chroot, realizar el
directamente un sistema operativo como Linux.
cambio a netboot en un directorio de construcción ya existente
significa reconstruir la etapa chroot también. Por lo tanto, se Por ejemplo, si se descomprime el archivo generado 246

15
Manual Debian Live

binary.netboot.tar en el directorio /srv/debian- 252 4.8.2 Servidor TFTP


live, se verá la imagen del sistema de ficheros en
live/filesystem.squashfs y el kernel, initrd y el gestor Se encarga de suministrar el kernel y el Disco RAM inicial para 253

de arranque pxelinux en tftpboot/debian-live/i386. el sistema.


Se debe instalar el paquete tftpd-hpa. Este servidor podrá 254
247 Ahora se debe configurar tres servicios en el servidor para
suministrar todos los ficheros contenidos de un directorio raíz,
que arranque en red: el servidor DHCP, el servidor TFTP y el
normalmente /srv/tftp. Para permitirle que pueda servir los
servidor NFS.
ficheros de /srv/debian-live/tftpboot, se debe ejecutar el
siguiente comando con privilegios de superusuario:
248 4.8.1 Servidor DHCP 255

# dpkg-reconfigure -plow tftpd-hpa


249 Hay que configurar el servidor DHCP de red para asegurar
que proporciona una dirección IP al cliente, y para anunciar
y escribir el directorio del nuevo servidor tftp cuando sea 256
la ubicación del gestor de arranque PXE.
requerido.
250 He aquí un ejemplo que puede servir de inspiración. Fue escrito
para el servidor ISC DHCP isc-dhcp-server en su fichero de 4.8.3 Servidor NFS 257

configuración /etc/dhcp/dhcpd.conf:
Una vez el equipo cliente ha descargado y arrancado el 258
251
kernel de Linux junto a su initrd, intentará montar el sistema
de archivos de la imagen en vivo a través de un servidor
# /etc/dhcp/dhcpd.conf - fichero de configuración para isc-dhcp-server NFS.
ddns-update-style none; Se debe instalar el paquete nfs-kernel-server. 259

option domain-name "example.org"; Entonces, se debe hacer que la imagen del sistema de archivos 260
option domain-name-servers ns1.example.org, ns2.example.org;
esté disponible a través de NFS añadiendo una línea como la
default-lease-time 600; siguiente para /etc/exports:
max-lease-time 7200;
261

log-facility local7;

subnet 192.168.0.0 netmask 255.255.255.0 { /srv/debian-live *(ro,async,no_root_squash,no_subtree_check)


range 192.168.0.1 192.168.0.254;
next-server servername;
filename "pxelinux.0";
e informar al servidor NFS sobre esta nueva exportación con 262

} el siguiente comando:
263

16
Manual Debian Live

272 Obtener o crear un grub-floppy-netboot.


# exportfs -rv
Lanzar qemu con “-net nic,vlan=0 -net tap,vlan=0,ifname=tun0273”
264 La configuración de estos tres servicios puede ser un poco
difícil. Será necesario un poco de paciencia para conseguir que 5. Descripción general de las herramientas 274
todos ellos funcionen juntos. Para obtener más información, ver
el wiki de syslinux en ‹http://www.syslinux.org/wiki/index.php/PXELINUX› Este capítulo contiene una descripción general de las tres 275
o la sección sobre TFTP Net Booting del Manual del Instalador herramientas principales utilizadas en la creación de sistemas
de Debian en ‹http://d-i.alioth.debian.org/manual/en.i386/ch04s05.html› Debian Live: live-build, live-boot y live-config.
Esto puede ser útil, ya que sus procesos son muy
similares.
5.1 El paquete live-build 276

265 4.8.4 Cómo probar el arranque en red live-build es una colección de scripts para generar los 277

sistemas Debian Live. A estos scripts también se les conoce


266 La creación de una imagen de arranque en red es sencilla con como «comandos».
live-build, pero probar las imágenes en máquinas físicas puede
La idea detrás de live-build es ser un marco que utiliza un 278
ser un proceso mucho más lento.
directorio de configuración para automatizar completamente y
267 Para hacer nuestra vida más fácil, se puede utilizar la personalizar todos los aspectos de la creación de una imagen
virtualización. de un sistema en vivo.
Muchos conceptos son similares a los utilizados para crear 279

268 4.8.5 Qemu paquetes Debian con debhelper:


• Los scripts tienen una ubicación central para la configuración 280
269 • Instalar qemu, bridge-utils, sudo. de su funcionamiento. En debhelper, éste es el subdirectorio
270 Se debe editar el fichero /etc/qemu-ifup: debian/ de un árbol de paquetes. Por ejemplo, dh_install
buscará, entre otros, un fichero llamado debian/install
271
para determinar qué ficheros deben existir en un paquete
binario en particular. De la misma manera, live-build
#!/bin/sh almacena toda su configuración bajo un subdirectorio
sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1
echo "Executing /etc/qemu-ifup"
config/.
echo "Bringing up $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up • Los scripts son independientes - es decir, siempre es seguro 281
echo "Adding $1 to br0..." ejecutar cada comando.
sudo /usr/sbin/brctl addif br0 $1
sleep 2 A diferencia de debhelper, live-build contiene una herramienta 282

17
Manual Debian Live

para crear un directorio de configuración en esqueleto, Usar lb config sin ningún argumento sería conveniente para 291

lb config. Ésto podría ser considerado como similar los usuarios que necesitan una imagen muy básica, o que
a herramientas tales como dh-make. Para obtener más tienen intención de proporcionar más tarde una configuración
información sobre lb config, consultar ‹El comando lb más completa a través de auto/config (ver ‹Gestionar una
config› configuración› para más detalles).
283 El resto de esta sección describe los tres comandos más Normalmente, se tendrá que especificar algunas opciones. Por 292

importantes: ejemplo, para especificar la distribución que se desea construir


284 • lb config : Responsable de la creación de un directorio de utilizando su nombre en clave:
configuración del sistema en vivo. Ver ‹El comando lb config› 293

para más información.


$ lb config --distribution sid
285 • lb build : Responsable de iniciar la creación de un sistema
en vivo. Ver ‹El comando lb build› para más información.
Es posible especificar muchas opciones, tales como: 294
286 • lb clean : Responsable de la eliminación de partes de la
295
creación de un sistema en vivo. Ver ‹El comando lb clean›
para más información.
$ lb config --binary-images netboot --bootappend-live "boot=live config←-
hostname=live-host username=live-user" ...
287 5.1.1 El comando lb config
Una lista completa de opciones está disponible en la página de 296
288 Como se comentó en ‹live-build›, los scripts que componen manual lb_config.
live-build obtienen su configuración 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 5.1.2 El comando lb build 297

comando lb config para crear el esqueleto de directorios de


configuración. El comando lb build lee la configuración del directorio 298

config/. A continuación, ejecuta los comandos de nivel


289 Ejecutar lb config sin argumentos crea un subdirectorio inferior necesarios para crear el sistema en vivo.
config/ que se completa con algunas opciones por defecto y
un árbol de subdirectorios en forma de esqueleto auto/:
5.1.3 El comando lb clean 299
290

El comando lb clean es el encargado de eliminar varias partes 300


$ lb config
[2013-01-01 09:14:22] lb_config
de una creación de forma que las creaciones posteriores
P: Considering defaults defined in /etc/live/build.conf puedan comenzar de forma limpia. Por defecto se eliminan las
P: Creating config tree for a debian/i386 system etapas chroot, binary y source pero se deja el caché intacto.

18
Manual Debian Live

Además, se pueden limpiar etapas de forma individual. Por de trabajos de cron y el inicio de sesión automático del usuario
ejemplo, si se han realizado cambios que sólo afectan a la en vivo.
etapa binary, se debe usar lb clean --binary antes de crear
una nueva binary. Ver el manual de lb_clean para una lista
6. Gestionar una configuración 307
detallada de todas sus opciones
Este capítulo explica como gestionar una configuración para 308

301 5.2 El paquete live-boot crear un sistema en vivo desde el principio, pasando por
sucesivas versiones tanto de la herramienta live-build como
de la imagen del sistema en vivo propiamente dicha.
302 live-boot es una colección de scripts que proporcionan scripts
gancho (hooks) para initramfs-tools, que sirve para generar un
initramfs capaz de arrancar los sistemas en vivo, tales como 6.1 Gestionar cambios en la configuración 309

los creados por live-build. Ésto incluye las ISOs de Debian Live,
archivos comprimidos en tar de netboot, e imágenes para llaves Las configuraciones en vivo rara vez son perfectas al primer 310

USB. intento. Puede estar bien pasar opciones a lb config en la


línea de comandos para realizar una construcción única, pero
303 En el momento del arranque, buscará en los medios de es más típico revisar esas opciones y construir de nuevo hasta
almacenamiento de sólo lectura un directorio /live/ donde se quedar satisfecho. Para gestionar estos cambios, se pueden
encuentra un sistema de ficheros raíz (a menudo una imagen utilizar scripts auto que garanticen que la configuración se
del sistema de ficheros comprimidos como squashfs). Si lo mantiene en un estado coherente.
encuentra, creará un entorno de escritura, utilizando aufs,
para que arranquen los sistemas tipo Debian.
6.1.1 ¿Por qué utilizar scripts auto? ¿Qué hacen? 311

304 Se puede encontrar más información sobre ramfs inicial


en Debian en el Manual del kernel Debian Linux en El comando lb config almacena las opciones que se le pasan 312

‹http://kernel-handbook.alioth.debian.org/› concretamente en el en ficheros en el directorio config/*, junto con muchas otras


capítulo sobre initramfs. opciones que figuran en sus valores predeterminados. Si se
ejecuta lb config una vez más, no restablecerá ninguna
opción que se estableció como por defecto en función de las
305 5.3 El paquete live-config opciones iniciales. Así, por ejemplo, si se ejecuta lb config
otra vez con un nuevo valor para --distribution, todas las
306 live-config consiste en una serie de scripts que se ejecutan en opciones que se establecieron como predeterminadas para
el arranque después de live-boot para configurar el sistema la distribución anteriormente ya no pueden funcionar con la
en vivo de forma automática. Se ocupa de tareas como la nueva configuración. Estos archivos tampoco estan destinados
creación del nombre del equipo (hostname), las variantes a ser leídos o editados. Almacenan valores para más de cien
locales y la zona horaria, crear el usuario en vivo, la inhibición opciones, para que nadie sea capaz de ver las opciones que

19
Manual Debian Live

se especificó realmente. Y por último, si se ejecuta lb config


#!/bin/sh
y a continuación se actualiza live-build y hay alguna opción lb config noauto \
que cambió de nombre, config/* todavía tendrá variables con --architectures i386 \
--linux-flavours 686-pae \
las opciones viejas que ya no son válidas. --binary-images hdd \
--mirror-bootstrap http://ftp.ch.debian.org/debian/ \
313 Por todas estas razones, los scripts auto/* nos hacen la --mirror-binary http://ftp.ch.debian.org/debian/ \
vida más fácil. Son simples envoltorios para los comandos "${@}"
lb config, lb build y lb clean diseñados para ayudar a
gestionar una configuración. El script auto/config contiene Ahora, cada vez que se utilize lb config, auto/config 319

el comando lb config con todas las opciones que se desea, reiniciará la configuración basándose en estas opciones.
el script auto/clean elimina los ficheros que contienen Cuando se desee realizar cambios, se deben editar las
variables de configuración y el fichero auto/build crea un opciones en este fichero en lugar de pasarlas a lb config.
build.log de cada creación. Cada uno de estos scripts se Cuando se utilize lb clean, auto/clean limpiará los ficheros
ejecuta automáticamente cada vez que se ejecuta la orden en config/* junto a los otros productos de construcción. Y,
lb correspondiente. Mediante el uso de estos scripts, la por último, cuando se utilice lb build, auto/build creará un
configuración es más fácil de leer y se mantiene internamente log del proceso de construcción llamado build.log.
coherente de una revisión a la siguiente. Además, será mucho Nota: Aquí se utiliza noauto, un parámetro especial para 320
más fácil identificar y corregir las opciones que necesitan suprimir otra llamada a auto/config, evitando así una
cambiarse tras actualizar live-build y leer la documentación repetición infinita. Asegurarse de no eliminarlo accidentalmente
actualizada. al hacer cambios en el fichero. Tener cuidado al dividir el
comando lb config en varias líneas para facilitar la lectura,
314 6.1.2 Usar scripts auto de ejemplo como se muestra en el ejemplo anterior, ya que no debe
olvidarse la barra invertida ( al final de cada línea que sigue en
315 Para mayor comodidad, live-build incluye scripts auto de la siguiente.
ejemplo que se pueden copiar y editar. Iniciar una nueva
configuración por defecto y a continuación, copiar los
6.2 Clonar una configuración publicada a través de 321
ejemplos:
Git
316

Utilizar la opción lb config --config para clonar un repositorio 322

$ mkdir mylive && cd mylive && lb config Git que contenga una configuración de Debian Live. Si se
$ cp /usr/share/doc/live-build/examples/auto/* auto/ desea basar la configuración en una mantenida por el proyecto
Debian Live, visitar el repositorio en ‹http://live.debian.net/gitweb/›
317 Editar auto/config, añadiendo las opciones que se desee. Por con el nombre live-images bajo el título Packages. Este
ejemplo: repositorio contiene las configuraciones de las ‹imágenes
318 prefabricadas› de Debian Live.

20
Manual Debian Live

323 Por ejemplo, para construir una imagen de rescate, utilizar el y opcionalmente, hacer los cambios necesarios para adaptarlo
repositorio live-images de la siguiente manera: según las necesidades.
324 En cualquier caso, recordar que cada vez que se tiene que 331

construir una imagen hay que hacerlo como superusuario: lb


$ mkdir live-images && cd live-images build
$ lb config --config git://live.debian.net/git/live-images.git
$ cd images/rescue

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

325 Editar auto/config y cualquier otra cosa que se necesite en


el árbol config para adaptarlo a las propias necesidades. Este capítulo presenta un resumen de las diversas formas en 333

Por ejemplo, las imágenes prefabricadas con paquetes que se puede personalizar un sistema Debian Live.
de la sección non-free se crean simplemente añadiendo
--archive-areas “main contrib non-free”.
7.1 Configuración en el momento de la creación vs en el 334
326 Si se desea, se puede definir un método abreviado en momento del arranque
la configuración de Git, añadiendo lo siguiente al fichero
${HOME}/.gitconfig: Las opciones de configuración de un sistema Debian Live se 335

327 pueden dividir en opciones que se aplican en el momento de


la creación de la imágen del sistema en vivo y opciones que
[url "git://live.debian.net/git/"]
se tendrán en cuenta cuando el sistema en vivo arranque.
insteadOf = ldn: Estas últimas se puenden dividir a su vez en opciones
que se ejecutan en la etapa inicial del arranque, aplicadas
328 Esto permite utilizar ldn: en cualquier lugar en que se por el paquete live-boot, y otras que se llevarán a cabo
tenga que especificar la dirección de un repositorio git de posteriormente y que son aplicadas por el paquete live-config.
live.debian.net. Si se omite el sufijo .git, comenzar una Cualquier opción en tiempo de arraque puede ser modificada
nueva imagen con esta configuración es tan fácil como: por el usuario indicándola en los parámetros de arranque
del kernel mediante el indicador de arranque. La imagen
329
puede ser creada por defecto con los parámetros de arranque
adecuados, de manera que los usuarios solamente tendrán
$ lb config --config ldn:live-images que arrancar el sistema en vivo, directamente, sin necesidad
de especificar ninguna opción adicional, ya que las opciones
330 Clonar el repositorio live-images completo copiará todas por defecto serán las adecuadas. En particular, la opcion lb
las configuraciones utilizadas para varias imágenes. Si se --bootappend-live permite introducir cualquier parámetro
quiere construir una imagen diferente después de haber del kernel para el sistema en vivo, como pueden ser la
terminado con la primera, cambiar a otro directorio y de nuevo, persistencia, distribución del teclado, zonas horarias, etc. Ver

21
Manual Debian Live

un ejemplo en ‹Personalización de las variantes locales e ficheros de código fuente de los paquetes utilizados.
idioma›.
336 Las opciones de configuración en tiempo de creación se En cada una de estas etapas hay una secuencia particular 339

describen en la página de manual del comando lb config. en la se aplican las acciones a realizar. Estas acciones son
Las opciones en tiempo de arranque se describen en las organizadas en forma de capas de tal manera que aseguran
páginas de manual de los paquetes live-boot y live-config. la personalización de una manera razonable. Por ejemplo,
Aunque los paquetes live-boot y live-config se instalan en el dentro de la etapa chroot , las preconfiguraciones (preseeds)
sistema en vivo que se está creando, también se recomienda se aplican antes que cualquier paquete sea instalado, los
que sean instalados en el sistema huésped, que se utiliza paquetes son instalados antes de incluir ningún fichero
para crear la imagen del sistema en vivo, con el fin de facilitar localmente y los scripts gancho (hooks) serán ejecutados al
la referencia cuando se trabaja en una configuración. No hay final de todo, una vez que todos los materiales están ubicados
ningún problema en hacerlo, ya que ninguno de los scripts que en su lugar.
contiene el sistema huésped será ejecutado, a menos que se
configure el sistema huésped como sistema en vivo.
7.3 Opciones para lb config en ficheros 340

337 7.2 Etapas de la creación


Aunque la orden lb config crea un esqueleto de configuración 341

338 El proceso de creación de la imagen está dividido en etapas en en el directorio config/, quizás sea necesario escribir ficheros
las que se aplican diferentes personalizaciones en cada una de de configuración adicionales dentro de la jerarquía de
ellas. La primera etapa que se ejecuta es la etapa bootstrap . subdirectorios de config/ con el fin de alcanzar los objetivos
Esta fase inicial crea y rellena el directorio chroot con paquetes propuestos. En el proceso de creación de la imagen estos
que constituyen un sistema Debian básico. A continuación ficheros adicionales serán copiados o en el sistema de
la etapa chroot completa la creación del directorio chroot, ficheros que se utilizará en el sistema en vivo, o en el
rellenándolo con todos los paquetes que han sido listados en sistema de ficheros de la propia imagen binaria o quizás
la configuración y material adicional. En esta etapa se utiliza podrán suministrar opciones de configuracion al sistema en
la mayoría de las personalizaciones de contenido. La etapa vivo que sería incomodo pasar en la línea de parámetros
binary es la etapa final en la que se prepara la imagen del del kernel. Esto dependerá de en qué parte de la jerarquía
sistema en vivo utilizando el contenido del directorio chroot de subdirectorios de config/ se copian estos ficheros. Se
para construir el sistema de ficheros raíz del futuro sistema en puede incluir cosas como listas de paquetes personalizadas,
vivo, se incluye el instalador y cualquier otro material adicional imágenes gráficas personalizadas o scripts gancho (hook
de la imagen que no es parte el sistema de ficheros raíz, como scripts) para ejecutar o en el momento de creación de la
puede ser el gestor de arranque (bootloader) o ficheros de imagen o en el momento de arranque del sistema en vivo,
documentación. Posteriormente, en la etapa opcional source aumentando la ya por otra parte considerable flexibilidad de
se creará el fichero comprimido (tarball) que contiene los Debian Live con código creado ex profeso.

22
Manual Debian Live

7.4 Tareas de personalización 342 algunas posibilidades.

343 Los siguientes capítulos se organizan por tareas de 8.1 Origen de los paquetes 346
personalización que el usuario realiza típicamente: Los
capítulos de ‹Personalización de la instalación de paquetes›, 8.1.1 Distribución, áreas de archivo y modo 347
‹Personalización de contenidos› y ‹Personalización de las
variantes locales e idioma› cubren solamente unas pocas de La distribución seleccionada tiene gran impacto en qué 348

las tareas que pueden realizarse. paquetes están disponibles para incluir en la imagen. Se debe
indicar el nombre en clave de la distribución, que por defecto
es wheezy para la versión wheezy de live-build. Se puede
344 8. Personalización de la instalación de paquetes especificar cualquier nombre de distribución disponible en
los repositorios Debian indicando su nombre en clave. (Para
345 Quizás la tarea más básica de personalización en Debian más detalles ver ‹Términos›). La opción --distribution no
Live es la selección de paquetes que serán incluidos en solamente influencia la fuente de los paquetes dentro del
la imagen. Este capítulo orienta a través de las diferentes archivo Debian, sino que instruye a live-build a comportarse
opciones de live-build que, en el momento de la creación tal y como se necesita para construir cada una de las
de la imagen, personalizan la instalación de paquetes. Las distribuciones. Por ejemplo, para construir la versión inestable
opciones que seleccionan la distribucion base y las áreas , sid , se debe indicar:
del archivo Debian a utilizar son las que más influyen a la
349
hora de conocer qué paquetes estarán disponibles para su
instalación en la imagen. Para asegurar una buena velocidad
$ lb config --distribution sid
de descarga de paquetes, se debería elegir el repositorio
Debian más cercano. Se pueden añadir repositorios para
backports, experimentales, paquetes personalizados o incluir Las áreas del archivo Debian son la principal división de 350

ficheros de paquetes directamente. Se pueden definir listas paquetes dentro de una distribución dada. En Debian las
de paquetes personalizadas, incluyendo metapaquetes que áreas del archivo establecidas son main, contrib y non-free.
instalarán muchos paquetes relacionados, como por ejemplo Solamente los paquetes contenidos en main son parte de la
paquetes de un entorno de escritorio o lenguaje particular. distribución Debian. Ésta es el área definida por defecto en
Por último existen varias opciones que dan algún control live-build. Se pueden indicar uno o más valores tal y como se
sobre cuando son instalados los paquetes por la herramienta muestra en el siguiente ejemplo:
apt o la herramienta aptitude, según sea la elegida. Estas 351

opciones pueden ser útiles si se utiliza un proxy, se quiere


desactivar la instalación de paquetes recomendados para $ lb config --archive-areas "main contrib non-free"
ahorrar espacio o se necesita controlar las versiones de
los paquetes a instalar mediante APT pinning, por nombrar Experimentalmente se da soporte a alguna distribución 352

23
Manual Debian Live

derivada de Debian mediante la opción --mode. Por defecto, en los valores de las opciones --mirror-binary y --mirror-
esta opción toma el valor debian sólo si se está construyendo binary-security en lugar de utilizar los indicados para las
en un sistema Debian o en un sistema desconocido. Si etapas anteriores.
se utiliza lb config en cualquiera de las distribuciones
derivadas a las que se da soporte, por defecto se construirá
8.1.3 Réplicas de Distribution utilizadas durante la 356
una imagen de esa distribución derivada. Por ejemplo, si lb
creación
config se ejecuta en modo ubuntu se utilizará el nombre
de esa distribución y las áreas de archivos específicas de
Para indicar qué réplicas deben ser utilizadas en el momento 357
esa distribución derivada en lugar de los propios de Debian
de crear la imagen es suficiente con utilizar las opciones --
y live-build modificará su comportamiento para adecuarlo al
mirror-bootstrap , --mirror-chroot-security y --mirror-
modo seleccionado.
chroot-backports como se muestra a continuación.
353 Nota: La ayuda a los usuarios de las distribuciones para las 358
cuales se añadieron estos modos son responsabilidad de los
desarrolladores de dichas distribuciones. El proyecto Debian
$ lb config --mirror-bootstrap http://localhost/debian/ \
Live proporciona ayuda al desarrollo de la mejor manera --mirror-chroot-security http://localhost/debian-security/ \
posible, basándose en la información recogida de dichas --mirror-chroot-backports http://localhost/debian-backports/

distribuciones derivadas a pesar de que no desarrolla ni da


soporte a las mismas. El valor indicado en --mirror-chroot es utilizado como valor 359

por defecto para la opción --mirror-bootstrap si esta no es


especificada.
354 8.1.2 Réplicas de Distribución Debian

355 Los repositorios de Debian están replicados en una gran red 8.1.4 Réplicas de distribución Debian utilizadas en la 360

alrededor del mundo, de manera que se puede seleccionar la ejecución.


réplica más cercana con el fin de obtener la mejor velocidad de
descarga. Cada una de las opciones --mirror-* gobierna qué Las opciones --mirror-binary* gobiernan las réplicas 361

réplica de repositorio Debian se utiliza en las diferentes etapas configuradas en la imagen binaria que serán utilizadas para
de creación. Si se recuerda de ‹Etapas de la creación›, en la instalar paquetes adicionales mientras se ejecuta el sistema
etapa bootstrap es cuando se crea el directorio chroot con un en vivo. Por defecto se utiliza http.debian.net, que es un
sistema mínimo mediante la herramienta debootstrap, y en la servicio que selecciona la réplica más cercana basándose,
etapa chroot es cuando el directorio chroot es completado con entre otras cosas, en la familia de la IP del usuario y de la
los paquetes necesarios para crear el sistema de ficheros que disponibilidad de la réplica. Es una elección bastante acertada
será utilizado en el sistema en vivo. A cada una de estas etapas siempre que no se pueda predecir que réplica será la mejor
le corresponde su propia opción --mirror-*. Posteriormente, para todos los usuarios. También se puede especificar valores
en la etapa binary se utilizarán las réplicas Debian indicadas personalizados como se muestra en el siguiente ejemplo. Una

24
Manual Debian Live

imagen construida con esta configuración solamente sería existen.


accesible a los usuarios de una red donde “mirror” fuese
alcanzable. Se debería también incluir en el fichero config/archives/- 369

your-repository.key.{binary,chroot} la clave GPG a


362
utilizar para firmar dicho repositorio.

$ lb config --mirror-binary http://mirror/debian/ \ En caso de necesitar un APT pinning personalizado, las 370
--mirror-binary-security http://mirror/debian-security/ \
--mirror-binary-backports http://mirror/debian-backports/
preferencias de APT se pueden colocar mediante ficheros
config/archives/your-repository.pref.{binary,chroot},
y serán añadidos automáticamente al sistema en vivo en el
363 8.1.5 Repositorios adicionales directorio /etc/apt/preferences.d/.

Nota: Existen algunos repositorios de paquetes ya 371


364 Se pueden añadir más repositorios, ampliando la lista de
preconfigurados para facilitar la selección mediante la
paquetes seleccionables más alla de aquellos disponibles
opción --archives. Por ejemplo, para utilizar las instantáneas
para la distribución indicada, como pueden ser paquetes
del repositorio de Debian Live, sería suficiente con activarlo
de backports, paquetes experimentales o personalizados.
mediante:
Para configurar repositorios adicionales se debe crear los
ficheros config/archives/your-repository.list.chroot y/o 372
config/archives/your-repository.list.binary. Al igual
que en las opciones --mirror-*, estos ficheros gobiernan $ lb config --archives live.debian.net
los repositorios utilizados en las etapas chroot y binary
respectivamente, esto es, los repositorios que serán utilizados
cuando se ejecute el sistema en vivo.
8.2 Selección de los paquetes a instalar 373
365 Por ejemplo, config/archives/live.list.chroot permite
instalar paquetes de las instantáneas del repositorio Debian
Live en el momento de crear la imagen. Hay varias maneras de seleccionar qué paquetes serán 374

instalados por live-build en la imagen que cubren una variedad


366
de necesidades diversas. Se puede nombrar paquetes
individuales para instalar en una lista de paquetes. También
deb http://live.debian.net/ sid-snapshots main contrib non-free
se puede utilizar metapaquetes en esas listas, o selecionarlas
utilizando campos de ficheros de control de paquetes. Por
367 Si se añade la misma línea a config/archives/live.list.- último, también se pueden utilizar ficheros de paquetes de
binary, el repositorio será añadido al directorio /etc/apt/-
prueba o experimentales obtenidos antes de que aparezcan
sources.list.d/ del sistema en vivo.
en los repositorios oficiales simplemente depositando estos
368 Estos ficheros serán seleccionados automáticamente si ficheros directamente en el árbol de directorios config/.

25
Manual Debian Live

8.2.1 Listas de paquetes 375 que una forma rápida de determinar cuales están disponibles
(aunque puede contener un puñado de entradas falsas que
376 Las listas de paquetes proporcionan una potente forma de coincidan con el nombre, pero que no son metapaquetes) es
expresar qué paquetes deberían ser instalados. La sintaxis buscar el nombre del paquete con:
de las listas soporta las expresiones condicionales, que
383
facilitan la creación de listas, adaptando su utilización a
diversas configuraciones. También se pueden añadir nombre
$ apt-cache search --names-only ^task-
de paquetes en la listas utilizando shell helpers en tiempo de
construcción.
377 Nota: El comportamiento de live-build cuando se especifica Además de éstos, se encuentran otros metapaquetes con 384

un paquete que no existe es determinado por lo que se haya diversos fines. Algunos son subconjuntos de paquetes de
configurado en la utilidad APT. Para más detalles ver ‹Utilizar tareas más amplias, como gnome-core, mientras que otros
apt o aptitude›. son partes especializadas individuales de un Debian Pure
Blend, como los metapaquetes education-*. Para tener una
lista de todos los metapaquetes en el archivo, instalar el
378 8.2.2 Utilizar metapaquetes paquete debtags y listar todos los paquetes con la etiqueta
role::metapackage de la siguiente manera:
379 La manera más sencilla de rellenar una lista de paquetes es
utilizar una tarea metapaquete mantenida por una distribución. 385

Por ejemplo:
$ debtags search role::metapackage
380

$ lb config
$ echo task-gnome-desktop > config/package-lists/desktop.list.chroot 8.2.3 Listas de paquetes locales 386

381 Esto reemplaza el antiguo método de listas predefinidas Ya sea incluyendo metapaquetes en una lista, paquetes 387
compatible con live-build 2.x. A diferencia de las listas individuales, o una combinación de ambos, todas las listas de
predefinidas, los metapaquetes de tareas no son específicos paquetes locales se deben almacenar en config/package-
del proyecto Debian Live. Por el contrario, son mantenidas lists/. Ya que se puede utilizar más de una lista, esto se
por grupos de especialistas que trabajan en la distribución y presta muy bien a los diseños modulares. Por ejemplo, se
por lo tanto, reflejan el consenso de cada grupo acerca de puede dedicar una lista a una elección particular de escritorio,
qué paquetes sirven mejor a las necesidades de los usuarios. la otra a una colección de paquetes relacionados que puedan
Además, abarcan una gama mucho más amplia de casos de ser fácilmente utilizados sobre un escritorio diferente. Esto
uso que las listas predefinidas a las que sustituyen. permite experimentar con diferentes combinaciones de
382 Todos los metapaquetes de tareas tienen el prefijo task-, por lo conjuntos de paquetes con un mínimo esfuerzo, así como

26
Manual Debian Live

compartir listas comunes entre diferentes proyectos de De hecho, la selección de paquetes con la orden grep- 394

imágenes en vivo. aptavail (del paquete dctrl-tools) es tan útil que live-build
proporciona un script de ayuda llamado Packages. Este script
388 Para que sean procesadas, las listas de paquetes que se
acepta dos argumentos: field y pattern. Por lo tanto, se
depositen en este directorio deben tener la extensión .list
puede crear una lista con los siguientes contenidos:
además de la extensión de la etapa .chroot o .binary para
indicar a qué etapa corresponde la lista. 395

389 Nota: Si no se especifica el sufijo, la lista será usada en las


$ lb config
dos etapas. En consecuencia, es conveniente especificar $ echo '! Packages Priority standard' > config/package-lists/standard.←-
.list.chroot de modo que los paquetes se instalen list.chroot

únicamente en el sistema en vivo y no exista otra copia


extra del paquete .deb.
8.2.6 Utilización de condiciones dentro de las listas de 396

paquetes
390 8.2.4 Listas de paquetes locales para la etapa binary
En las sentencias condicionales de las listas de paquetes 397
391 Para crear una lista para la etapa «binary» crear un fichero pueden utilizarse cualquier variable disponible en config/*
con el sufijo .list.binary en config/package-lists/. Estos (excepto las que tienen el prefijo LB_). En general esto significa
paquetes no son instalados en el sistema en vivo, pero son que puede utilizarse cualquier opción válida para lb config
incluidos en pool/. El uso típico de una de estas lista sería para cambiando las letras minúsculas por mayúsculas y los guiones
una de las variantes de instalador normal («non-live» N.del T.). por barras bajas. En la práctica solamente tiene sentido
Tal y como se mencionaba anteriormente, si se desea usar la utilizar aquellas variables relacionadas con la selección de
misma lista para la etapa «chroot» basta con solamente añadir paquetes, como pueden ser DISTRIBUTION, ARCHITECTURES o
el sufijo .list ARCHIVE_AREAS.

Por ejemplo, para instalar el paquete ia32-libs si se ha 398


392 8.2.5 Generar listas de paquetes especificado la arquitectura amd64 (--architectures amd64)
se puede utilizar:
393 A veces ocurre que la mejor manera de crear una lista es
399
generarla con un script. Cualquier línea que comience con un
signo de exclamación indica un comando que se ejecutará
#if ARCHITECTURES amd64
dentro del chroot cuando la imagen se construya. Por ejemplo, ia32-libs
se podría incluir la línea ! grep-aptavail -n -sPackage - #endif

FPriority standard |sort en una lista de paquetes para


producir una lista ordenada de los paquetes disponibles con En la expresión condicional pueden utilizarse varios valores. 400

Priority: standard. Por ejemplo para instalar el paquete memtest86+ si la

27
Manual Debian Live

arquitectura es i386 (--architectures i386) o es amd64 Cuando se desarolla una imagen de escritorio, la imagen 407

(--architectures amd64) se puede especificar: normalmente arranca directamente a un escritorio de trabajo,


401
las opciones de escritorio y de idioma por defecto han sido
elegidas en tiempo de creación, no en tiempo de ejecución
como en el caso del instalador de Debian. Eso no quiere decir
#if ARCHITECTURES i386 amd64
memtest86+ que una imagen en vivo no pueda ser creada para admitir
#endif múltiples escritorios o varios idiomas y ofrecer al usuario una
elección, pero ese no es un comportamiento por defecto de
402 En la expresión condicional también pueden utilizarse live-build.
variables que pueden contener más de un valor. Por ejemplo
Ya que no se ha previsto la instalación automática de tareas 408
para instalar vrms si se utilizan las áreas del archivo contrib
de idiomas, que incluyen cosas tales como tipos de letra
o non-free mediante la opción --archive-areas se puede
específicos de cada lengua o paquetes de métodos de
indicar:
entrada, si se quiere incluirlos, es necesario especificarlo
403
en la configuración. Por ejemplo, una imagen de escritorio
GNOME que contenga soporte para el alemán podría incluir
#if ARCHIVE_AREAS contrib non-free los siguientes metapaquetes de tareas:
vrms
#endif 409

404 No se permite el anidamiento de estructuras condicionales. $ lb config


$ echo "task-gnome-desktop task-laptop" >> config/package-lists/my.list←-
.chroot
405 8.2.7 Tareas de Escritorio e Idioma $ echo "task-german task-german-desktop task-german-gnome-desktop" >> ←-
config/package-lists/my.list.chroot

406 Las tareas de escritorio y de idioma son casos especiales


que necesitan un poco de planificación y configuración extra.
Si el medio de instalación fue preparado para una clase 8.2.8 Versión y tipo de kernel 410

particular de entorno de escritorio, el Instalador de Debian


instalará automáticamente la tarea de entorno de escritorio Dependiendo de la arquitectura, se incluyen por defecto en 411

correspondiente. Para ello existen las tareas internas gnome- las imágenes uno o más tipos de kernels. Se puede elegir
desktop, kde-desktop, lxde-desktop y xfce-desktop pero
entre diferentes tipos utilizando la opción --linux-flavours.
ninguna de ellas son presentadas en el menú de tasksel. De Cada tipo tiene el sufijo de la raíz predeterminada linux-image
igual forma, las tareas para idiomas tampoco son presentadas para formar el nombre de cada metapaquete que a su vez
en el menú de tasksel, pero la selección del idioma, al inicio de depende del paquete del kernel exacto que debe incluirse en
la instalación repercute en la selección de las correspondientes la imagen.
tareas del idioma. Así, por defecto, una imagen de arquitectura amd64 incluirá el 412

28
Manual Debian Live

metapaquete linux-image-amd64 y una imagen de arquitectura Si se opta por construir los paquetes del kernel sin los 418

i386 incluirá los metapaquetes linux-image-486 y linux- metapaquetes adecuados, es necesario especificar una raíz
image-686-pae. En el momento de escribir esto, los paquetes --linux-packages apropiada como se indica en ‹Versión y
dependen, respectivamente, de linux-image-3.2.0-4-amd64, tipo de kernel›. Tal y como se explica en ‹Instalar paquetes
linux-image-3.2.0-4-486 y linux-image-3.2.0-4-686- modificados o de terceros›, es mejor si se incluyen los
pae paquetes del kernel personalizado en un repositorio propio,
aunque las alternativas discutidas en esa sección también
413 Cuando hay más de una versión del paquete del kernel
funcionan.
disponible en los archivos configurados, se puede especificar
el nombre de un paquete del kernel diferente con la opción Está más allá del alcance de este documento dar consejos 419

--linux-packages. Por ejemplo, suponer que se está sobre cómo personalizar un kernel. Sin embargo, se debe
construyendo una image de arquitectura amd64 y se quiere por lo menos, asegurarse de que la configuración cumple los
añadir el archivo experimental a fin de realizar pruebas para siguientes requisitos mínimos:
que se pueda instalar el kernel linux-image-3.7-trunk-amd64.
• Utilizar un ramdisk inicial. 420
Se podría configurar la imagen de la siguiente manera:
414
• Incluir el módulo de unión de sistemas de ficheros 421

(normalmente aufs).
$ lb config --linux-packages linux-image-3.7-trunk • Incluir todos los módulos de sistemas de ficheros requeridos 422
$ echo "deb http://ftp.debian.org/debian/ experimental main" > config/←-
archives/experimental.list.chroot
por la configuración (normalmente squashfs).

8.3 Instalar paquetes modificados o de terceros 423

415 8.2.9 Kernels personalizados


Si bien está en contra de la filosofía de Debian Live, en 424

416 Se pueden crear e incluir kernels personalizados, pero hay que ocasiones es necesario crear un sistema en vivo con
tener en cuenta que live-build sólo soporta los kernels que versiones de paquetes modificados a partir de los disponibles
se integran en el sistema de gestión de paquetes de Debian en el repositorio de Debian. Estos paquetes pueden modificar
y no es compatible con kernels que no esten en paquetes características existentes o dar soporte a características
.deb. adicionales, idiomas y derivados (branding), o eliminar
elementos existentes en los paquetes que no son de interes.
417 La manera apropiada y recomendada de implementar los
De manera similar, se pueden incluir paquetes «de terceros»
propios paquetes del kernel es seguir las instrucciones del
para añadir funcionalidades a medida o propietarias.
kernel-handbook. Recordar modificar el ABI y los sufijos de
los tipos del kernel e incluir los paquetes del kernel completo En esta sección no se describe la creación o mantenimiento 425

en un repositorio que coincidan con los paquetes linux y de paquetes personalizados. Puede ser interesante una
linux-latest. lectura del método descrito por Joachim Breitner `How to

29
Manual Debian Live

fork privately' en
‹http://www.joachim-breitner.de/blog/archives/ 8.3.2 Método de repositorio APT para instalar paquetes 437

›. La guía del nuevo desarrollador


282-How-to-fork-privately.html personalizados
de Debian en ‹http://www.debian.org/doc/maint-guide/› describe la
creación de paquetes a medida. A diferencia del método packages.chroot, cuando se utiliza el 438

método de repositorio APT personalizado se debe asegurar


426 Existen dos formas de instalar paquetes personalizados:
que se especifica dónde se deben buscar los paquetes a
427 • packages.chroot instalar. Para más información ver ‹Selección de los paquetes
428 • Utilizando un repositorio APT personalizado a instalar›.

429 El método packages.chroot es el más simple para añadir Aunque crear un repositorio APT para instalar paquetes 439

paquetes personalizados. Es muy útil para personalizaciones personalizados puede parecer un esfuerzo innecesaro, la
«rápidas» pero tiene unos cuantos inconvenientes mientras infraestructurar puede ser fácilmente reutilizada posteriormente
que la utilización de un repositorio APT personalizado es más para ofrecer nuevas versiones de los paquetes.
lento de poner en marcha.
8.3.3 Paquetes personalizados y APT 440

430 8.3.1 Método packages.chroot para instalar paquetes


personalizados live-build utiliza APT para instalar todos los paquetes en el 441

sistema en vivo, así que hereda sus comportamientos. Un


431 Para instalar paquetes personalizados solamente hay punto a resaltar es que (asumiendo una configuración de APT
que copiar el paquete en el directorio config/packages.- por defecto) dado un paquete en dos repositorios diferentes
chroot/. Los paquetes contenidos en este directorio serán con diferentes números de versiones, APT seleccionará para
automáticamente instalados en el sistema en vivo durante instalar el paquete con número de versión superior.
el proceso de creación. No es necesario especificar nada
Esta sería una buena razón para incrementar el número de 442
más.
version en los ficheros debian/changelog de los paquetes
432 Los paquetes deben nombrarse de la forma prescrita. La forma personalizados y así asegurar que serán estos los paquetes
más simple es usar dpkg-name. instalados en lugar de los contenidos en los repositorios
433 El método packages.chroot para la instalación de paquetes oficiales de Debian. Esto puede también lograrse alterando
personalizados tiene desventajas: las preferencias de pinning de APT del sistema en vivo. Para
más información ver ‹APT pinning›.
434 • No es posible utilizar secure APT.
435 • Se deben depositar todos los paquetes apropiados en el
8.4 Configurar APT en la creación 443
directorio config/packages.chroot/.
436 • No es adecuado para almacenar configuraciones de Debian Se puede configurar APT mediante varias opciones que se 444

Live en un control de versiones. aplicarán en el momento de crear la imagen. (La configuración

30
Manual Debian Live

que APT utilizará cuando se ejecute el sistema en vivo 8.4.3 Ajuste de APT para ahorrar espacio 452

puede ser configurada de la manera que habitualmente se


utiliza para introducir contenidos del sistema en vivo, esto es, En ocasiones es necesario ahorrar un poco de espacio 453

incluyendo las configuraciones apropiadas en el directorio en el medio de instalación. Las dos opciones descritas a
config/includes.chroot/.) Se puede encontrar una lista continuación pueden ser de interes.
completa de las opciones para configurar APT en la página de Si no se desea incluir los índices de APT en la imagen creada 454
manual de lb_config. Son aquellas opciones que comienzan se puede utilizar la siguiente opción:
con apt.
455

445 8.4.1 Utilizar apt o aptitude


$ lb config --apt-indices false

446 Se puede seleccionar qué herramienta se utilizará para instalar


Esto no modificará el comportamiento de las entradas definidas 456
paquetes, apt o aptitude, en el momento de crear la imagen
en /etc/apt/sources.list, sino que solo afecta a si exitirán
mediante la opción --apt de lb config. Esta selección definirá
o no ficheros de índice en el directorio /var/lib/apt. El
el comportamiento preferido en la instalación de paquetes,
compromiso viene de que APT necesita estos ficheros índices
siendo la mayor diferencia la manera de tratar los paquetes no
para funcionar en el sistema en vivo, así que, si no existen,
disponibles.
el usuario deberá ejecutar la orden apt-get update para
447 • apt: Con este método, si se especifica un paquete no crear estos índices antes de poder ejecutar una orden del tipo
existente, la instalación fallará. Es el comportamiento por apt-cache search o apt-get install.
defecto.
Si la instalación de los paquetes recomendados aumenta 457
448 • aptitude: Con este método, si se especifica un paquete no demasiado el tamaño de la imagen, siempre y cuando se
existente, la instalación continuará sin error. esté preparado para hacer frente a las consecuencias que se
mencionan a continuación, se puede desactivar el valor por
449 8.4.2 Utilización de un proxy con APT defecto de esta opción de APT con:
458

450 Un problema habitual en la configuración de APT es tratar con


la creación de una imagen desde detras de un proxy. Se puede $ lb config --apt-recommends false
especificar dicho proxy con las opciones --apt-ftp-proxy o -
-apt-http-proxy. Por ejemplo:
La consecuencia más importante de desactivar los 459

451 «recommends» es que live-boot y live-config recomiendan


algunos paquetes que proporcionan una funcionalidad
$ lb config --apt-http-proxy http://proxy/ importante y que son utilizados por la mayoría de las
configuraciones en vivo, como por ejemplo user-setup

31
Manual Debian Live

recomendado por live-config que se utiliza para crear el se pueden especificar. Así, por ejemplo, supongamos que se
usuario en vivo. En todas menos en las circunstancias más ha incluido algo con fines de prueba de snapshot.debian.org
excepcionales es necesario volver a añadir por lo menos y se desea especificar Acquire::Check-Valid-Until=false
algunos de los «recommends» en las listas de paquetes o para que APT esté feliz con el fichero Release caducado, se
de lo contrario la imagen no funcionará como se espera, haría como en el ejemplo siguiente, añadiendo la opción de
si es que funciona en lo más minimo. Mirar los paquetes nuevo después del valor por defecto --yes:
recomendados por cada uno de los paquetes live-* incluidos 463
en la construcción y si no se está seguro de que es lo que
se puede omitir, volver a agregarlo utilizando las listas de
$ lb config --apt-options "--yes -oAcquire::Check-Valid-Until=false"
paquetes.
460 La consecuencia más general es que, si no se instalan los Consultar las páginas de manual para entender completamente 464
paquetes recomendados para un paquete dado, esto es «los estas opciones y cuándo utilizarlas. Esto es sólo un ejemplo
paquetes que supuestamente deberían encontrase intalados y no debe ser interpretado como consejo para configurar la
si un paquete ya lo está» (Debian Policy Manual, seccion 7.2), imagen. Esta opción no sería apropiada para, por ejemplo,
algún paquete que supuestamente debería estar instalado una versión final de una imagen en vivo.
será omitido. Por lo tanto, se sugiere que si se desactiva esta
Para configuraciones más complicadas que implican opciones 465
opción, se revise las diferencias en las listas de paquetes
apt.conf puede ser necesario crear un fichero config/-
instalados (ver el fichero binary.packages generado por lb
apt/apt.conf. Ver tambien las otras opciones apt-* para
build) y que se vuelva a incluir en la lista cualquier paquete
tener algunos atajos convenientes para las opciones que se
que deba ser instalado. Si se considera que el número de
necesitan con frecuencia.
paquetes a descartar es pequeño, se recomienda que la
opción se deje activada y que se utilice una prioridad pin
negativa de APT en dichos paquetes y así evitar que sean 8.4.5 APT pinning 466

instalados tal y como se explica en ‹APT pinning›.


Como información básica, sería recomendable leer la página 467

de manual apt_preferences(5). APT pinning puede ser


461 8.4.4 Pasar opciones a apt o a aptitude
configurado o en tiempo de creación de la imagen, creando
los ficheros config/archives/*.pref, config/archives/-
462 Si no hay una opción lb config para modificar el
*.pref.chroot, y config/apt/preferences. o en tiempo de
comportamiento de APT en la forma que se necesita,
ejecución del sistema en vivo creando el fichero config/-
utilizar --apt-options o --aptitude-options para pasar
includes.chroot/etc/apt/preferences.
opciones a la herramienta APT configurada. Consultar las
páginas de manual apt y aptitude para más detalles. Tener Supongamos que se está creando un sistema en vivo basado 468

en cuenta que ambas opciones tienen valores por defecto en wheezy pero se necesita instalar todos los paquetes “live”
que tendran que mantenerse, además de las opciones que que terminan instalados en la imagen binaria final desde la

32
Manual Debian Live

versión inestable «sid » en el momento de crear la imagen. Pin: version *


Pin-Priority: -1
Se deberá añadir sid a los orígenes (sources) de APT y fijar
(pin) los paquetes live con una prioridad más alta pero todos
los otros paquetes con una prioridad más baja que la prioridad
por defecto de manera que solamente los paquetes fijados 9. Personalización de contenidos 472

sean instalados desde sid mientras que el resto será obtenido


desde la distribución base, wheezy . Esto se puede realizar de Este capítulo trata, no solamente de una mera descripción de 473

la siguiente forma: cómo seleccionar los paquetes a incluir en el sistema en vivo,


469
sino que además presenta cómo hacer el «ajuste fino» de
la personalización de los contenidos del propio sistema. Los
$ echo "deb http://mirror/debian/ sid main" > config/archives/sid.list.←-
«includes» permiten adjuntar o reemplazar cualquier fichero
chroot en la imagen Debian Live a crear, los scripts gancho (hooks)
$ cat >> config/archives/sid.pref.chroot << EOF permiten ejecutar cualquier orden en las diferentes etapas
Package: live-*
Pin: release n=sid de creación y en el momento del arranque y por último, la
Pin-Priority: 600 preconfiguración permite configurar paquetes cuando son
Package: *
instalados, suministrando las respuestas a las preguntas de
Pin: release n=sid debconf.
Pin-Priority: 1
EOF

9.1 Includes 474


470 Una prioridad pin negativa previene la instalación de un
paquete, como puede ser el caso de que no se desee que Idealmente, un sistema Debain Live debería incluir solamente 475
un paquete recomendado por otro sea instalado al instalar ficheros que son obtenidos de paquetes Debian no
el primero. Supongamos que se está creando una imagen modificados. Sin embargo, algunas veces es conveniente
LXDE añadiendo task-lxde-desktop en config/package- incluir o modificar algún contenido mediante ficheros. La
lists/desktop.list.chroot, pero no se desea preguntar al utilización de includes posibilita la inclusión, modificación o
usuario si desea almacenar las claves wifi en el keyring. Este cambio de cualquier fichero en la imagen Debian Live a crear.
metapaquete depende de lxde-core, el cual recomienda gksu live-build tiene dos mecanismos:
que a su vez recomienda gnome-keyring. Así que el objetivo
es omitir la instalación del paquete gnome-keyring, que puede • Includes locales en chroot : Estos includes permiten incluir o 476

conseguirse añadiendo un fichero con el siguiente contenido a reemplazar ficheros en el sistema de ficheros chroot. Para
config/apt/preferences: más información ver ‹Includes locales en Live/chroot›
471 • Includes locales en Binary: Estos includes permiten incluir o 477

reemplazar ficheros en la propia imagen binaria generada.


Package: gnome-keyring Para más información ver ‹Includes locales en Binary›

33
Manual Debian Live

Para más infomación acerca de la diferencia entre las 478 | `-- var
| `-- www
imágenes “Live” y “binary” ver ‹Términos› | `-- index.html
[...]

479 9.1.1 Includes locales en Live/chroot


Los includes locales en chroot serán instalados después de 485

480 Los includes locales en chroot se utilizan para incluir o la instalación de los paquetes de manera que los includes
reemplazar ficheros en el sistema de ficheros Live/chroot sobreescribirán cualquier fichero que los paquetes puedan
de manera que puedan ser utilizados en el sistema en vivo. haber instalado.
Una utilización típica de estos includes puede ser rellenar
el directorio (/etc/skel) usado por el sistema Live para 9.1.2 Includes locales en Binary 486

crear el directorio home del usuario. Otra utilización típica es


suministrar ficheros de configuración que pueden ser incluidos Se puede incluir material como documentación, videos, etc en 487

o reemplazados en la imagen sin necesidad de realizar el sistema de ficheros del medio (USB, CDROM, etc) donde
procesado alguno; Si se necesita realizar algún procesado se grabará la imagen de manera que sea accesible nada más
de estos ficheros ver la sección ‹Scripts gancho locales en insertar el medio sin necesidad de arrancar el sistema en vivo.
Live/chroot› Para esto se utilizan los includes locales en Binary. Funciona
de manera similar a los includes locales en chroot comentados
481 Para incluir ficheros solamente hace falta añadirlos al directorio
anteriormente. Por ejemplo, supongamos que en el medio
de configuración config/includes.chroot. Habrá una relación
de instalación se desea añadir unos ficheros con videos de
directa entre este directorio y el directorio raíz / del sistema en
demostración ~/video_demo.* sobre el funcionamiento del
vivo. Por ejemplo, si se desea añadir un fichero para que sea
sistema en vivo de manera que el usuario pueda acceder a
el fichero /var/www/index.html del sistema en vivo se puede
ellos a través de la página de indice HTML. Simplemente se
hacer lo siguiente:
debe copiar el material en config/includes.binary/ de la
482 siguiente manera:
488
$ mkdir -p config/includes.chroot/var/www
$ cp /path/to/my/index.html config/includes.chroot/var/www
$ cp ~/video_demo.* config/includes.binary/

483 El directorio de configuración presentará la siguiente


Los ficheros aparecerán ahora en el directorio raíz del medio 489
jerarquía:
en vivo.
484

9.2 Scripts gancho (Hooks) 490


-- config
[...]
|-- includes.chroot Los scripts gancho permiten ejecutar órdenes para 491

34
Manual Debian Live

personalizar la imagen en las etapas chroot y binary. 9.2.3 Scripts gancho locales en Binary 496

Para ejecutar comandos en la etapa Binary se deben crear 497


492 9.2.1 Scripts gancho locales en Live/chroot scripts gancho con el sufijo .binary que contengan las
ordenes y depositarlos en el directorio config/hooks/. Los
493 Para ejecutar órdenes en la etapa chroot se deben crear scripts scripts gancho se ejecutarán después de finalizar el resto de
gancho (hooks) con el sufijo .chroot que contengan dichas procesos de la etapa pero antes de crear los checksum con
ordenes a ejecutar y depositarlos en el directorio config/- binary_checksum que es el último proceso que se ejecuta en
hooks/. Estos scripts serán ejecutados en el entorno del esta etapa. Los scripts gancho no se ejecutan en el entorno del
chroot después de que el resto de las tareas de preparación chroot, así que hay que tener cuidado de no modificar cualquier
del chroot han sido realizadas. Se debe asegurar que fichero fuera del árbol de creación, o se dañará el sistema de
previamente se han instalado en el entorno chroot cualquier creación. En /usr/share/doc/live-build/examples/hooks
paquete, fichero u órden que necesiten los scripts gancho. se pueden ver varios ejemplos de scripts gancho genéricos
El paquete live-build instala en el directorio /usr/share/- que permiten tareas de personalización para la etapa Binary.
doc/live-build/examples/hooks del sistema huésped unos Estos scripts pueden ser utilizados en la propia configuración
cuantos scripts gancho para realizar tareas habituales de copiándolos o creando enlaces simbólicos.
personalización del entorno chroot que pueden ser copiados
o referenciados mediante enlace simbólico en la propia
configuración. 9.3 Preconfiguración de las preguntas de Debconf 498

Los ficheros del directorio config/preseed/ con el sufijo 499

494 9.2.2 Scripts gancho en tiempo de arranque .cfg seguido por la etapa (.chroot o .binary) son ficheros
de preconfiguración para debconf. live-build instalará estos
495 Para ejecutar ordenes en el arranque del sistema en vivo, se ficheros mediante debconf-set-selections durante la etapa
puede suministrar scripts gancho a live-config depositándolos correspondiente.
en el directorio config/includes.chroot/lib/live/config/, Ver debconf(7) en el paquete debconf para obtener más 500
tal y como se explica en la sección de “Personalización” de información acerca de debconf.
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 10. Personalización del comportamiento en tiempo de 501

números. Cuando se vaya a utilizar scripts propios deben ser ejecución.


prefijados con un número para indicar el orden de ejecución.
Otra posibilidad es utilizar un paquete personalizado tal y Toda la configuración que se hace en tiempo de ejecución es 502

como se describe en ‹Instalar paquetes modificados o de realizada por live-config. Éstas son algunas de las opciones
terceros›. más comunes de live-config en las que los usuarios están más

35
Manual Debian Live

interesados. Se puede encontrar una lista completa de todas especificarlo en la configuración:


las posibilidades en la página de manual de live-config. 510

503 10.1 Personalización del usuario por defecto del sistema $ lb config --bootappend-live "boot=live config username=live-user"

en vivo
Una posible forma de cambiar la contraseña por defecto es 511

504 Una consideración importante es que el usuario por defecto usando un script gancho (hook) tal y como se describe en
del sistema en vivo es creado por live-boot en el arranque y ‹Scripts gancho en tiempo de arranque›. Para conseguirlo se
no live-build durante la creación de la imagen. Ésto no sólo puede usar el script gancho «passwd» de /usr/share/doc/-
influye dónde se introducen los materiales relacionados con live-config/examples/hooks, ponerle un prefijo adecuado
este usuario durante la creación de la imagen tal y como se (p.ej. 2000-passwd) y añadirlo a config/includes.chroot/-
explica en ‹Includes locales en Live/chroot› sino también a lib/live/config/
cualquier grupo y a los permisos asociados con el usuario por
defecto del sistema en vivo.
10.2 Personalización de las variantes locales e 512

505 Se pueden especificar grupos adicionales a los que idioma


pertenecerá el usuario por defecto del sistema en vivo
mediante el uso de cualquiera de las posibilidades de Cuando el sistema en vivo arranca, el idioma está implicado en 513

configuración de live-config. Por ejemplo, para agregar el dos pasos:


usuario al grupo fuse, se puede agregar el fichero siguiente
• Generar las variantes locales 514
a config/includes.chroot/etc/live/config/user-setup.-
conf: • Establecer la distribución del teclado 515

506 La variante local predeterminada en la creación de un sistema 516

en vivo es locales=en_US.UTF-8. Para definir la variante local


LIVE_USER_DEFAULT_GROUPS="audio cdrom dip floppy video plugdev netdev ←- que se debe generar, se puede utilizar el parámetro locales
powerdev scanner bluetooth fuse" en la opción --bootappend-live de lb config, p.ej.
517
507 o utilizar live-config.user-default-groups=audio,cdrom,dip,floppy,video,plugdev,netdev,powerdev,scanner,bluetooth,fuse
como parámetro de arranque.
$ lb config --bootappend-live "boot=live config locales=de_CH.UTF-8"

508 Además, es posible cambiar el usuario por defecto “user” y


la contraseña por defecto “live”. Si se desea cambiarlos por Se pueden especificar diversas variantes locales separándolas 518

cualquier motivo, se puede conseguir de forma sencilla tal y con comas.


como se explica a continuación:
Este parámetro se puede utilizar en la línea de comandos 519

509 Cambiar el nombre del usuario por defecto es tan sencillo como del kernel, al igual que los parámetros de configuración del

36
Manual Debian Live

teclado indicados a continuación. Es posibe configurar una


$ lb config --bootappend-live "boot=live config locales=de_CH.UTF-8 ←-
variante local con idioma_país (en cuyo caso se utiliza el keyboard-layouts=ch"
tipo de codificación por omisión) o también con la expresión
completa idioma_país.codificación. La lista de todas las
variantes locales está en /usr/share/i18n/SUPPORTED. Sin enbargo, para casos de uso muy específicos, se puede 525

520 live-config se encarga de la configuración del teclado incluir otros parámetros. Por ejemplo, para configurar un
de la consola y del entorno gráfico X utilizando el paquete sistema Francés con una disposición French-Dvorak (también
console-setup. Para configurarlos se puede utilizar los llamado Bepo) en un teclado USB TypeMatrix EZ-Reach 2030,
parámetros de arranque keyboard-layouts, keyboard- utilizar:
variants, keyboard-options y keyboard-model a través de la
526
opción --bootappend-live. Se puede encontrar una lista de
opciones válidas para estos parámetros en /usr/share/X11/-
$ lb config --bootappend-live \
xkb/rules/base.lst. Para hallar la distribución del teclado y "boot=live config locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard←-
la variante que corresponde a un idioma se puede buscar el -variants=bepo keyboard-model=tm2030usb"
nombre en inglés de la nación donde se habla el idioma, por
ejemplo:
521
Para cada una de las variables de configuración del teclado 527

keyboard-* se puede especificar varios valores separados


por comas. A excepción de keyboard-model, que sólo acepta
$ egrep -i '(^!|german.*switzerland)' /usr/share/X11/xkb/rules/base.lst
! model un valor. En la página de manual keyboard(5) se explican
! layout los detalles y algunos ejemplos de cómo utilizar las variables
ch German (Switzerland)
! variant
XKBMODEL, XKBLAYOUT, XKBVARIANT y XKBOPTIONS. Si se
legacy ch: German (Switzerland, legacy) especifican diferentes valores en keyboard-variants estos se
de_nodeadkeys ch: German (Switzerland, eliminate dead keys)
de_sundeadkeys ch: German (Switzerland, Sun dead keys)
corresponderan uno a uno con los valores keyboard-layouts
de_mac ch: German (Switzerland, Macintosh) (ver setxkbmap(1) opción -variant). Se admiten valores
! option vacíos; por ejemplo para definir dos distribuciones de teclado,
la que se usa por omisión US QWERTY y otra US Dvorak,
522 Cada variante muestra una descripción de la disposición que utilizar:
aplica.
528
523 Normalmente, sólo es necesario configurar la disposición del
teclado. Por ejemplo, para obtener los ficheros de la variante
$ lb config --bootappend-live \
local de la disposición del teclado alemán y suizo-alemán en X "boot=live config keyboard-layouts=us,us keyboard-variants=,dvorak←-
utilizar: "

524

37
Manual Debian Live

10.3 Persistencia 529 volúmenes con persistencia durante el arranque. Es posible


restringir qué tipos de volúmenes persistentes se pueden usar
530 Un paradigma de un cd en vivo («live cd» N. del T.) es ser especificando ciertos parámetros de arranque descritos en la
un sistema pre-instalado que funciona desde medios de página del manual de live-boot(7). Un volumen persistente es
almacenamiento de sólo lectura, como un CD-ROM, donde cualquiera de los siguientes:
los cambios y las modificaciones no se guardan tras reiniciar
• una partición, identificada por su nombre GPT. 535
el sistema en que se ejecuta.
• Un sistema de ficheros, identificado por su etiqueta de 536
531 Un sistema Debian Live es una generalización de este
sistema de ficheros.
paradigma pero que es compatible con otros medios
de almacenamiento, no sólo en CDs. Aún así, en su • una fichero imagen situado en la raíz de cualquier sistema 537

comportamiento predeterminado, se debe considerar un de ficheros que pueda ser leido (incluso una partición NTFS
sistema de sólo lectura y todos los cambios en tiempo de de otro sistema operativo), identificado por su nombre de
ejecución del sistema se pierden al apagar el equipo. fichero.
532 La «persistencia» es un nombre común que se da a los La etiqueta del volumen para las overlays debe ser 538

diferentes tipos de soluciones para guardar algunos o todos persistence pero será ignorado a menos que contenga
los cambios realizados durante la ejecución tras reiniciar en su raíz un fichero llamado persistence.conf que se
el sistema. Para entender cómo funciona es útil saber que utiliza para personalizar la persistencia del volumen, esto
incluso si el sistema se inicia y se ejecuta desde los medios es, especificar los directorios que se desea guardar en un
de almacenamiento de sólo lectura, las modificaciones de los volumen de persistencia después de reiniciar. Ver ‹El fichero
ficheros y directorios se escriben en medios de escritura, por persistence.conf› para más detalles.
lo general en la memoria ram (tmpfs) y los datos guardados
He aquí algunos ejemplos de cómo preparar un volumen para 539
en la ram se pierden al reiniciar.
ser usado para la persistencia. Puede ser, por ejemplo, una
533 Los datos almacenados en esta memoria ram se pueden partición en un disco duro o en una llave usb creada con,
guardar en un soporte grabable, como un medio de p.ej.
almacenamiento local, un recurso compartido en red o incluso 540
en una sesión de un CD/DVD regrabable en multisesión. Todos
estos medios son compatibles con Debian Live de diferentes
# mkfs.ext4 -L persistence /dev/sdb1
maneras y todos, menos el último, requieren un parámetro
de arranque especial que se especificará en el momento del
arranque: persistence. Ver ‹Usar el espacio libre en el dispositivo USB›. 541

534 Si se usa el parámetro de arranque persistence (y no se Si ya existe una partición en el dispositivo, sólo se tiene que 542

usa la opción nopersistence), se busca en los medios de cambiar la etiqueta con uno de los siguientes:
almacenamiento locales (p.ej. discos duros, llaves USB) 543

38
Manual Debian Live

551 10.3.1 El fichero persistence.conf


# tune2fs -L persistence /dev/sdb1 # for ext2,3,4 filesystems

552 Un volumen con la etiqueta persistence debe ser configurado


544 Un ejemplo de cómo crear un fichero imagen basado en ext4
a través de un fichero persistence.conf para crear directorios
para ser usado para la persistencia:
arbitrarios persistentes. Ese fichero, situado en el sistema
545 de ficheros raíz del volumen, controla que directorios hace
persistentes y también de que manera.
$ dd if=/dev/null of=persistence bs=1 count=0 seek=1G # for a 1GB sized←-
image file En la página de manual de persistence.conf(5) se explica en 553
$ /sbin/mkfs.ext4 -F persistence
detalle cómo se configura el montaje de las overlays, pero un
sencillo ejemplo es suficiente para la mayoría de los casos.
546 Después de crear el fichero imagen, a modo de ejemplo, Supongamos que queremos crear nuestro directorio home y
para hacer /usr persistente pero únicamente guardando los APT cache persistentes en un sistema de ficheros ext4 en la
cambios que se realizan en ese directorio en lugar de todos partición /dev/sdb1:
los contenidos de /usr, se puede utilizar la opción “union”. Si
el fichero imagen se encuentra en el directorio home, copiarlo 554

a la raíz del sistema de ficheros del disco duro y montarlo en


/mnt como se explica a continuación: # mkfs.ext4 -L persistence /dev/sdb1
# mount -t ext4 /dev/sdb1 /mnt
547 # echo "/home" >> /mnt/persistence.conf
# echo "/var/cache/apt" >> /mnt/persistence.conf
# umount /mnt
# cp persistence /
# mount -t ext4 /persistence /mnt

Entonces reiniciamos. Durante el primer arranque los 555

548 Después, crear el fichero persistence.conf añadiendo contenidos de /home y /var/cache/apt se copiarán en el
contenido y desmontar el fichero imagen. volumen persistente y a partir de ese momento todos los
cambios en esos directorios se guardarán allí. Tener en cuenta
549
que las rutas listadas en el fichero persistence.conf no
pueden contener espacios en blanco ni los componentes
# echo "/usr union" >> /mnt/persistence.conf
especiales . y ... Además, ni /lib, /lib/live (o ninguno
# umount /mnt
de sus sub-directorios) ni / pueden hacerse persistentes
montándolos de forma personalizada. Una posible alternativa
550 Ahora, reiniciar y arrancar el medio en vivo con el parámetro a esta limitación es añadir / union al fichero persistence.conf
de arranque “persistence”. para conseguir una persistencia completa.

39
Manual Debian Live

10.3.2 Utilizar varios medios persistentes 556 de uso personal como los marcadores de un navegador o
similares utilizaría los parámetros de arranque: persistence
557 Existen diferentes métodos para utilizar múltiples volúmenes persistence-label=private. Y para almacenar datos
de persistencia para diferentes casos de uso. Por ejemplo, relacionados con el trabajo, como documentos, proyectos
utilizar varios volúmenes al mismo tiempo o seleccionar sólo de investigación o de otro tipo, utilizaría los parámetros de
uno, entre varios, para fines muy específicos. arranque: persistence persistence-label=work.
558 Se puede usar diferentes volúmenes de overlays al mismo Es importante recordar que cada uno de estos volúmenes, 561
tiempo (con sus propios ficheros persistence.conf) pero private y work, necesita también un fichero persistence.conf
si varios volúmenes hacen que un mismo directorio sea en su raíz. La página de manual de live-boot contiene
persistente, sólo uno de ellos será usado. Si dos unidades más información acerca de cómo utilizar estas etiquetas
montadas están “anidadas” (es decir, una es un sub-directorio con los antiguos nombres que se utilizaban en anteriores
de la otra) el directorio superior será montado antes que el versiones.
inferior de este modo no quedará uno escondido por el otro. La
personalización de los montajes anidadados es problemática
si están listados en el mismo fichero persistence.conf. 11. Personalización de la imagen binaria 562

Consultar la página de manual de persistence.conf(5) para ver


como manejar ese caso si realmente es necesario. (aclaración: 11.1 Gestor de arranque 563

normalmente no lo es).
live-build utiliza syslinux y algunos de sus derivados (en función 564
559 Un posible caso de uso: Si se desea guardar los datos del del tipo de imagen) como gestores de arranque por defecto. Se
usuario, es decir /home y los datos del superusuario, es decir pueden personalizar fácilmente de dos maneras.
/root en particiones diferentes, crear dos particiones con la
etiqueta persistence y añadir un fichero persistence.conf en Para utilizar un tema completo, copiar /usr/share/live/- 565

cada una de este modo, # echo “/home” > persistence.conf build/bootloaders en config/bootloaders y editar los
para la primera partición que guardará los ficheros del usuario y ficheros allí. Si no se desea modificar todas las configuraciones
# echo “/root” > persistence.conf para la segunda partición del gestor de arranque disponibles, es suficiente con sólo
que almacenará los ficheros del superusuario. Finalmente proporcionar una copia local personalizada de uno de los
utilizar el parámetro de arranque persistence. gestores de arranque, por ejemplo, copiar la configuración
de isolinux en config/bootloaders/isolinux es suficiente,
560 Si un usuario necesita un almacenamiento persistente múltiple
dependiendo del caso de uso.
del mismo tipo para diferentes lugares o pruebas, tales como
private y work, el parámetro de arranque persistence-label Se pueden hacer cambios más pequeños. Por ejemplo, los 566

usado junto con el parámetro de arranque persistence derivados de syslinux están configurados por defecto con un
permitirá medios de almacenamiento persistentes múltiples tiempo de espera de 0 (cero) lo que significa que harán una
pero únicos. Un ejemplo sería, si un usuario desea utilizar pausa indefinida en su pantalla de inicio hasta que se pulse
una partición persistente etiquetada private para datos una tecla.

40
Manual Debian Live

567 Para modificar el tiempo de espera de arranque de una debería especificar la aplicación que estará en la imagen.
imagen iso-hybrid se puede editar un fichero isolinux.cfg La longitud máxima para este campo es de 128 caracteres.
especificando el tiempo de espera en unidades de segundo y • LB_ISO_PREPARER/--iso-preparer NAME: Esto debería 576
agregarlo a config/includes.binary/isolinux/ identificar quién prepara la imagen, por lo general con
568 Un fichero isolinux.cfg modificado para arrancar después de algunos detalles de contacto. El valor predeterminado para
cinco segundos sería así: esta opción es la versión de live-build que se está utilizando,
lo que puede ayudar con la posterior depuración de errores.
569
La longitud máxima para este campo es de 128 caracteres.
include menu.cfg • LB_ISO_PUBLISHER/--iso-publisher NAME: Esto debería 577
default vesamenu.c32 identificar quién publica la imagen, por lo general con
prompt 0
timeout 50
algunos detalles de contacto. La longitud máxima para este
campo es de 128 caracteres.
570 Una forma alternativa de lograr el mismo objetivo podría ser • LB_ISO_VOLUME/--iso-volume NAME: Esto debería especificar 578

escribiendo un script gancho y agregarlo a config/hooks/.- el volumen de identificación de la imagen. Esto se utiliza
Recordar añadir el sufijo .binary para que sea ejecutado en la como etiqueta visible para el usuario en algunas plataformas
etapa binary. Un ejemplo podría ser: como Windows y Apple Mac OS. La longitud máxima para
571
este campo es de 32 caracteres.

#!/bin/sh 12. Personalización del Instalador de Debian 579

sed -i -e 's|timeout 0|timeout 50|' binary/isolinux/isolinux.cfg


Las imágenes de sistemas Debian Live pueden integrarse con 580

el Instalador de Debian. Hay varios tipos de instalación que se


572 Del mismo modo, si se quiere usar una splash.png diferencian en qué se incluye en la imágen y en cómo opera el
personalizada basta con añadir una imagen de 640x480 instalador.
píxeles en config/includes.binary/isolinux/
En esta sección se debe estar atento a la utilización de las 581

mayúsculas. Cuando se utiliza «Instalador de Debian», con


573 11.2 Metadatos ISO mayúsculas, se hace referencia explícita al instalador oficial del
sistema Debian, y a nada más ni a ningún otro instalador. A
574 Al crear una imagen binaria ISO9660 se pueden utilizar las menudo se abrevia con «d-i».
siguientes opciones para añadir varios metadatos textuales a
la imagen. Esto puede ayudar a identificar fácilmente la versión
12.1 Tipos de imágenes según el instalador 582
o la configuración de una imagen sin arrancarla.
575 • LB_ISO_APPLICATION/--iso-application NAME: Esto Principalmente existen tres tipos de imágenes según el 583

41
Manual Debian Live

instalador: Una vez finalizada esta etapa, el Instalador de Debian continua 589

normalmente, instalando y configurando los siguientes


584 Imágenes con Instalador Debian «normal» : Esta imagen
elementos como pueden ser gestor de arranque, creación de
de Debian Live se puede considerar como la imagen habitual.
usuarios locales, etc.
Dispone de un kernel y un initrd diferenciados que, al ser
seleccionados desde el gestor de arranque, ejecuta un Nota: Para poder incluir los dos tipos de instalador, «normal» y 590

Instalador de Debian estándar, de la misma manera que lo «live», en el mismo medio, se debe deshabilitar el live-installer.
haría si se arrancase desde una imagen de CD descargada Esto se hace utilizando la variable de preconfiguración
desde el sitio oficial de Debian. Las imágenes que contienen (preseed) live-installer/enable=false.
un sistema en vivo con otro instalador independiente se suelen Instalador Debian «del escritorio» : Una vez el sistema 591
llamar «imágenes combinadas». en vivo está ejecutandose, se puede lanzar el Instalador de
585 En estas imágenes, el sistema operativo Debian se instala Debian haciendo clic en el icono correspondiente, sin importar
mediante la herramienta debootstrap que descarga paquetes el tipo de Instalador Debian utilizado en el arranque. Esta
.deb desde medios locales o por red. El resultado final es un manera de instalar Debian es más sencilla para el usuario
sistema Debian por defecto instalado en el disco duro. y aconsejable en algunas situaciones. Para poder realizar
esta acción se debe instalar el paquete debian-installer-
586 El conjunto de este proceso puede ser preconfigurado launcher.
(preseeded) y personalizado de muchas maneras; Para más
Por defecto, live-build no incluye las imágenes que utilizan 592
información, ver las páginas relevantes en el manual del
el Instalador de Debian. Esto debe ser habilitado de forma
Instalador de Debian. Una vez que se ha generado el fichero
específica en lb config. También hay que hacer notar que,
de preconfiguración adecuado a las necesidades, live-build
para que la instalación desde «el escritorio» funcione, el kernel
puede encargarse de depositarlo en la imagen y activarlo de
del sistema en vivo debe ser el mismo que el kernel que utiliza
forma automática.
d-i en la arquitectura especificada. Por ejemplo:
587 Imágenes con Instalador Debian «Live» : Estas imágenes 593
de Debian Live también disponen de un kernel y un
initrd diferenciados que, al ser seleccionados desde el $ lb config --architectures i386 --linux-flavours 486 \
gestor de arranque, ejecutan un Instalador de Debian algo --debian-installer live
$ echo debian-installer-launcher >> config/package-lists/my.list.chroot
diferente.
588 El procedimiento de instalación es idéntico al realizado por las
imagenes «Regulares» pero, en lugar de utilizar debootstrap 12.2 Personalizando el Instalador de Debian mediante 594

para obtener e instalar paquetes .deb, lo que hace es copiar preconfiguración


al disco duro la imagen del sistema de ficheros que se había
preparado para lanzar el sistema en vivo. Esto se logra Tal y como se describe en el apéndice B del manual 595

mediante un .udeb especial llamado live-installer. del Instalador de Debian que puede consultarse en ‹http:

42
Manual Debian Live

›, «La preconfiguración
//www.debian.org/releases/stable/i386/apb.html 599 Proyecto
permite asociar respuestas a preguntas que aparecen
en el proceso de instalación, sin tener que responderlas 600 13. Contribuir al proyecto
manualmente en el momento se se ejecuta dicho proceso.
Esto hace posible automatizar totalmente la mayoria de las Cuando se envía una contribución se debe identificar 601

instalaciones e incluso ofrece alguna característica que no claramente su copyright e incluir la declaración de licencia. Se
está disponible durante una instalación normal.» Con live-build hace notar que para ser aceptada, una contribución debe ser
se puede llevar a cabo esta personalización depositando un publicada bajo la misma licencia que el resto del documento,
fichero llamado preseed.cfg en el directorio de configuración es decir, GPL versión 3 o posterior.
config/debian-installer/. Por ejemplo, para preconfigurar
Las contribuciones al proyecto, tales como traducciones y 602
la variante local a en_US se puede hacer:
parches, son muy bienvenidas. Cualquiera puede hacer una
entrega en los repositorios, sin embargo, a la hora de hacer
596 grandes cambios, es conveniente enviarlos a la lista de correo
para debatirlos primero. Ver la sección ‹Contacto› para más
$ echo "d-i debian-installer/locale string en_US" \
información.
>> config/debian-installer/preseed.cfg
El proyecto Debian Live utiliza Git como sistema de control 603

de versiones y gestión de código fuente. Como se explica en


‹Repositorios Git› hay dos ramas principales de desarrollo:
debian y debian-next . Todo el mundo puede hacer entregas
a las ramas debian-next de los repositorios live-boot, live-build,
597 12.3 Personalizar el contenido del Instalador de live-config, live-images, live-manual y live-tools.
Debian
Sin embargo, existen ciertas restricciones. El servidor 604

rechazará:
598 Es posible que, con propósitos experimentales o para • Entregas que no sean fast-forward 605

depuración de errores, se desee incluir paquetes udeb creados


• Entregas que hagan fusiones. 606
localmente para el d-i. Estos paquetes udeb son componentes
del Instalador de Debian que definen su comportamiento. Para • Añadir o borrar etiquetas o ramas. 607

incluirlos en la imagen, basta con depositarlos en el directorio


A pesar de que todas las entregas pueden ser revisadas, 608
de configuración config/packages.binary/. También pueden
pedimos usar el sentido común y hacer buenos commits con
incluirse o reemplazarse ficheros y directorios en el initrd del
mensajes de commit adecuados.
instalador de una manera similar a la que se describe en
‹Includes locales en Live/chroot›, depositando el material en el • Hay que escribir mensajes de entrega que consistan en 609

directorio config/includes.debian-installer/. una frase en ingles con significado completo, comenzando

43
Manual Debian Live

con una letra mayúscula y acabando con un punto final. 617

Es habitual comenzar estas frases con la forma `Fixing/-


Adding/Removing/Correcting/Translating/...'. $ cat >> ~/.ssh/config << EOF
Host live.debian.net
610 • Escribir buenos mensajes de entrega. La primera frase debe Hostname live.debian.net
ser un resumen exacto de los contenidos del commit, que se User git
IdentityFile ~/.ssh/keys/git@live.debian.net
incluirá en la lista de cambios. Si se necesita hacer algunas EOF
aclaraciones, escribirlas debajo dejando una línea en blanco
después de la primera y luego otra línea en blanco después
• Obtener un clon del manual mediante git utilizando ssh: 618
de cada párrafo. Las líneas de los párrafos no deben superar
los 80 caracteres de longitud. 619

611 • Hacer entregas de forma atómica, es decir, no mezclar


$ git clone git@live.debian.net:/live-manual.git
cosas no relacionadas en el mismo commit. Hacer un $ cd live-manual && git checkout debian-next
commit diferente para cada cambio que se realice.
• Acordarse de configurar el autor y el email en Git: 620
612 13.1 Realizar cambios
621

613 Para hacer una entrega a los repositorios, se debe seguir


el siguiente procedimiento. Aquí se utiliza live-manual $ git config user.name "John Doe"
$ git config user.email john@example.org
como ejemplo, por eso hay que sustituirlo por el nombre
del repositorio con el que se desea trabajar. Para obtener
información detallada sobre cómo editar live-manual ver Importante: Recordar que hay que enviar los cambios a la 622

‹Contribuir a este documento›. rama debian-next .

614 • Obtener la clave pública de entrega: • Efectuar los cambios. En este ejemplo, primero se escribiría 623

una nueva sección sobre cómo aplicar parches y luego


615
se añadirían los ficheros y se escribiría el mensaje de la
siguiente manera:
$ mkdir -p ~/.ssh/keys
$ wget http://live.debian.net/other/keys/git@live.debian.net -O ~/.ssh/←- 624
keys/git@live.debian.net
$ wget http://live.debian.net/other/keys/git@live.debian.net.pub -O ~/.←-
ssh/keys/git@live.debian.net.pub $ git commit -a -m "Adding a section on applying patches."
$ chmod 0600 ~/.ssh/keys/git@live.debian.net*

• Para finalizar se realizará la entrega al servidor: 625


616 • Añadir la siguiente sección en el fichero de configuración de
openssh-client: 626

44
Manual Debian Live

Los problemas detectados se especifican en la sección `status' 636


$ git push
de la página web ‹http://live.debian.net/›.
Está fuera del alcance de este manual enseñar cómo identificar 637

627 14. Informes de errores. y solucionar correctamente problemas de los paquetes de las
distribuciones en desarrollo, sin embargo, hay dos cosas que
628 Debian Live está lejos de ser perfecto, pero queremos que sea siempre se puede intentar: Si se detecta un error de creación
lo más perfecto posible - con tu ayuda. No dudar en informar de cuando la distribución de destino es testing , se debe intentar
un error. Es mejor llenar un informe dos veces que no hacerlo con unstable . Si unstable no funciona bien, se debe volver a
nunca. Sin embargo, este capítulo incluye recomendaciones testing haciendo un pin con la nueva versión del paquete de
sobre cómo presentar buenos informes de errores. unstable (véase ‹APT pinning› para más detalles).
629 Para los impacientes:
630 • Primero, siempre se debe comprobar el estado actualizado 14.2 Reconstruir desde cero 638

de la imagen en busca de problemas conocidos en la página


web ‹http://live.debian.net/›. Para asegurarse de que un error en particular no es causado 639

por crear el sistema basándose en los datos de un sistema


631 • Se debe intentar reproducir el error con las versiones más anterior, se debe reconstruir el sistema en vivo entero, desde
recientes de live-build, live-boot, live-config y live-tools el principio y comprobar si el error es reproducible.
antes de presentar un informe de errores.
632 • Se debe intentar proporcionar una información tan 14.3 Utilizar paquetes actualizados 640
específica como sea posible acerca del error. Esto
incluye (al menos) la versión de live-build, live-boot, live- Utilizar paquetes obsoletos puede causar problemas 641
config y live-tools utilizada y la distribución del sistema en importantes al tratar de reproducir (y en última instancia,
vivo que se está construyendo. solucionar) el problema. Hay que asegurarse de que el
sistema de construcción está actualizado y cualquier paquete
633 14.1 Problemas conocidos que se incluya en la imagen esté también al día .

634 Debido a que Debian testing y Debian unstable están


14.4 Recopilar información 642
cambiando continuamente, no siempre es posible crear un
sistema con éxito cuando se especifica cualquiera de estas
Se debe proporcionar información suficiente con el informe. 643
dos versiones como distribución objetivo.
Como mínimo, la versión exacta de live-build donde se
635 Si esto causa mucha dificultad, no se debe crear un sistema encuentra el error y los pasos para reproducirlo. Se debe utilizar
basado en testing o unstable , sino que debe utilizarse stable el sentido común e incluir cualquier información pertinente si
. live-build siempre crea, por defecto, la versión stable . se cree que podría ayudar a resolver el problema.

45
Manual Debian Live

644 Para sacar el máximo provecho de un informe de errores, se listas de archivos de los subdirectorios de config / pero no los
requerirá al menos la siguiente información: incluye).
645 • Arquitectura del sistema anfitrión Hay que recordar que los informes a enviar se deben hacer en 657

646 • La versión de live-build del sistema anfitrión. ingles, por lo que para generar los logs en este idioma se debe
utilizar la variante local English, p.ej. ejecutar los comandos
647 • Versión de debootstrap y/o cdebootstrap en el sistema de live-build o cualquier otro precedidos de LC_ALL=C o
anfitrión. LC_ALL=en_US.

648 • Arquitectura del sistema en vivo.


649 • Distribución del sistema en vivo. 14.5 Aislar el fallo si es posible 658

650 • Versión de live-boot en el sistema en vivo. Si es posible, aislar el caso del fallo al menor cambio posible 659

651 • Versión de live-config en el sistema en vivo. que lo produzca. No siempre es fácil hacer esto, así que si
no se consigue para el informe, no hay que preocuparse.
652 • Versión de live-tools en el sistema en vivo. Sin embargo, si se planea el ciclo de desarrollo bién, con
653 Se puede generar un log del proceso de creación mediante el conjuntos de cambios lo bastante pequeños por iteración,
comando tee. Se recomienda hacer esto de forma automática puede ser posible aislar el problema mediante la construcción
con un script auto/build (ver ‹Gestionar una configuración› de una simple «base» de configuración que se ajuste a la
para más detalles). configuración actual deseada, más el conjunto del cambio
que falla añadido. Si resulta difícil determinar que cambios
654
produjeron el error, puede ser que se haya incluido demasiado
en cada conjunto de cambios y se deba desarrollar en
# lb build 2>&1 | tee build.log incrementos más pequeños.

655 En el momento del arranque, live-boot y live-config guardan


sus logs en /var/log/live/. Comprobar si hay algún mensaje 14.6 Utilizar el paquete correcto sobre el que informar del 660

de error en estos ficheros. error

656 Además, para descartar otros errores, siempre es una buena Si no se sabe qué componente es responsable del error o si 661
idea comprimir en un .tar el directorio config/ y subirlo a algún el error es un error general relativo a los sistemas en vivo, se
lugar, para que el equipo de Debian Live pueda reproducir el puede rellenar un informe de errores contra el pseudo-paquete
error (No se debe enviar como documento adjunto a la lista de debian-live.
correo). Si esto es difícil (por ejemplo, debido a su tamaño)
se puede utilizar la salida del comando lb config --dump Sin embargo, se agradece si se intenta limitar la búsqueda a 662

que produce un resumen del árbol de configuración (es decir, donde aparece el error.

46
Manual Debian Live

663 14.6.1 En la preinstalación (bootstrap) en tiempo de 14.6.3 En tiempo de arranque 670

creación.
Si la imagen no arranca, se debería informar a la lista de 671

664 live-build crea primero un sistema Debian básico con correo, junto con la información solicitada en ‹Recopilar
debootstrap o cdebootstrap. Puede fallar dependiendo de información›. No hay que olvidar mencionar, cómo y cuándo la
la herramienta usada en la preinstalación y de la distribución imagen falla, si es utilizando virtualización o hardware real. Si
Debian empleada. Si un error aparece en este momento, se se está utilizando una tecnología de virtualización de cualquier
debe comprobar si está relacionado con un paquete específico tipo, se debe probar la imagen en hardware real antes de
de Debian (es lo más probable), o si está relacionado con la informar de un error. Proporcionar una captura de pantalla del
herramienta de preinstalación en sí. error también es muy útil.
665 En ambos casos, esto no es un error de Debian Live, sino
de Debian en sí mismo, por lo cual el equipo de Debian Live 14.6.4 En tiempo de ejecución 672

probablemente no pueda solucionarlo directamente. Informar


del error sobre la herramienta de preinstalación o el paquete Si un paquete se ha instalado correctamente, pero falla cuando 673

que falla. se ejecuta el sistema en vivo, esto es probablemente un error


en Debian Live. Sin embargo:
666 14.6.2 Mientras se instalan paquetes en tiempo de
creación. 14.7 Hacer la investigación 674

667 live-build instala paquetes adicionales del archivo de Debian Antes de presentar el informe de errores, buscar en la web 675

que pueden fallar en función de la distribución Debian utilizada el mensaje de error en particular o el síntoma que se está
y del estado diario del archivo Debian. Se debe comprobar si percibiendo. Como es muy poco probable que sea la única
el error es reproducible en un sistema Debian normal, si el fallo persona que tiene ese problema en concreto, siempre existe
aparece en esta etapa. la posibilidad de que se haya discutido en otras partes y
exista una posible solución, parche o se haya propuesto una
668 Si este es el caso, esto no es un error de Debian Live, sino
alternativa.
de Debian - se debe informar sobre el paquete que falla. Se
puede obtener más información ejecutando debootstrap de Se debe prestar especial atención a la lista de correo de Debian 676

forma separada del sistema de creación en vivo o ejecutando Live, así como su página principal, ya que seguramente tienen
lb bootstrap --debug. la información más actualizada. Si esa información existe, se
debe incluir la referencia a ella en su informe de errores.
669 Además, si se está utilizando una réplica local y/o cualquier
tipo de proxy y se experimenta un problema, se debe Además, se debe comprobar las listas de errores actuales de 677

intentar reproducir siempre preinstalando desde una réplica live-build, live-boot, live-config y live-tools y verificar si se ha
oficial. informado ya de algo similar.

47
Manual Debian Live

678 14.8 Dónde informar de los fallos • Se puede comprobar las secuencias de comandos con `sh 687

-n' y `checkbashisms'.
679 El proyecto Debian Live realiza un seguimiento de todos
• Asegurarse de que el código funcione con `set -e'. 688
los errores en el sistema de seguimiento de fallos de Debian
(BTS). Para obtener información sobre cómo utilizar el sistema,
consultar ‹http://bugs.debian.org/›. También se puede enviar los 15.2 Sangrado 689

errores mediante el comando reportbug del paquete con el


mismo nombre. • Utilizar siempre los tabuladores en lugar de espacios. 690

680 En general, se debe informar sobre los errores en tiempo de


15.3 Ajuste de líneas 691
creación contra el paquete live-build. De los fallos en tiempo de
arranque contra el paquete live-boot, y de los errores en tiempo
• En general, las líneas contienen 80 caracteres como máximo. 692
de ejecución contra el paquete live-config. Si no se está seguro
de qué paquete es el adecuado o se necesita más ayuda • Utilizar los saltos de línea al «estilo Linux»: 693

antes de presentar un informe de errores, lo mejor es enviar Mal: 694


un informe contra el pseudo-paquete debian-live. Nosotros
695
nos encargaremos de reasignarlo donde sea apropiado.
681 Hay que tener en cuenta que los errores que se encuentran en if foo; then
las distribuciones derivadas de Debian (como Ubuntu y otras) bar
fi
no deben enviarse al BTS de Debian a menos que también
se puedan reproducir en un sistema Debian usando paquetes
Bien: 696
oficiales de Debian.
697

682 15. Estilo de código if foo


then
683 En este capítulo se documenta el estilo de código utilizado en bar
fi
Debian Live.
• Lo mismo vale para las funciones: 698

684 15.1 Compatibilidad Mal: 699

700
685 • No utilizar sintaxis o semántica que sea única para el
intérprete de comandos Bash. Por ejemplo, el uso de arrays.
Foo () {
686 • Utilizar únicamente el subconjunto POSIX - por ejemplo, usar bar
$(foo) en lugar de `foo`. }

48
Manual Debian Live

701 Bien:
FOO=bar
702

Bien: 715

Foo ()
716
{
bar
}
FOO="bar"

• Si se utilizan múltiples variables, incluir la expresión completa 717


703 15.4 Variables entre comillas dobles:

704 • Las variables deben escribirse siempre en letras mayúsculas. Mal: 718

719
705 • Las variables que se utiliza en live-build siempre comienzan
con el prefijo LB_
if [ -f "${FOO}"/foo/"${BAR}"/bar ]
then
706 • Las variables temporales internas de live-build deben foobar
comenzar con el prefijo <=underscore>LB_ fi

707 • Las variables locales comienzan con el prefijo live-build


<=underscore><=underscore>LB_
Bien: 720

721
708 • Las variables en relación a un parámetro de arranque en live-
config comienzan con LIVE_.
if [ -f "${FOO}/foo/${BAR}/bar" ]
then
709 • Todas las demás variables de live-config comienzan con el foobar
prefijo _ fi

710 • Utilizar llaves para las variables, por ejemplo, escribir ${FOO}
en lugar de $FOO.
15.5 Miscelánea 722

711 • Utilizar comillas dobles en las variables para evitar dejar


espacios en blanco: Escribir “${FOO}” en lugar de ${FOO}. • Se debe utilizar “|” (sin comillas) como separador cuando se 723

invoque a sed, p.ej. “sed -e `s|'” (Pero sin las comillas “")
712 • Por motivos de coherencia, se debe utilizar siempre comillas
en la asignación de valores a las variables: • No se debe utilizar el comando test para hacer 724

comparaciones o pruebas, usar “[” “]” (sin “"); p.ej. ”if


713 Mal: [ -x /bin/foo ]; ...“ en lugar de ”if test -x /bin/foo;
714 ...”.

49
Manual Debian Live

725 • Se debe utilizar case siempre que sea posible en lugar de 736 16.2 Nuevas versiones
test, ya que es más fácil de leer y más rápido en la ejecución.
737 • Una vez más, se necesita una réplica actualizada de Debian
726 • Usar mayúsculas en los nombres de las funciones para evitar y debian-security.
confusiones con el entorno de los usuarios.
• Las imágenes se crean y se almacenan en cdimage.debian.org. 738
• Correo para enviar notificaciones. 739
727 16. Procedimientos

16.2.1 Última actualización de una versión Debian 740


728 Este capítulo documenta los procedimientos dentro del
proyecto Debian Live para diversas tareas que requieren la Recordar que se deben ajustar tanto las réplicas de chroot 741
cooperación con otros equipos de Debian. como las de binary cuando se construye la última serie de
imágenes para una versión de Debian después de haber sido
729 16.1 Principales lanzamientos trasladada de ftp.debian.org a archive.debian.org. De esta
manera, las viejas imágenes prefabricadas siguen siendo
útiles, sin modificaciones de los usuarios.
730 El lanzamiento de una nueva versión estable de Debian
involucra a una gran cantidad de equipos diferentes que
trabajan juntos para conseguirlo. En un momento dado, el 16.2.2 Plantilla para anunciar nuevas versiones. 742

equipo Live aparece y desarrolla imágenes en vivo del sistema.


Los requisitos para ello son: Se puede generar un anuncio de nuevas versiones usando la 743

siguiente plantilla y el siguiente comando:


731 • Una réplica de las versiones publicadas de los archivos de 744
debian y debian-security a la que pueda acceder el buildd de
debian-live.
$ sed \
-e 's|@MAJOR@|7.0|g' \
732 • Es necesario conocer el nombre de la imagen (p.ej. debian- -e 's|@MINOR@|7.0.1|g' \
-e 's|@CODENAME@|wheezy|g' \
live-VERSION-ARCH-FLAVOUR.iso). -e 's|@ANNOUNCE@|2013/msgXXXXX.html|g'

733 • Es necesario sincronizar los datos de debian-cd (lista de


exclusión de udeb) Revisar el mensaje de correo con cuidado antes de enviarlo a 745

otras personas para su corrección.


734 • Es necesario sincronizar la lista de los paquetes de debian-cd 746
incluidos (README.*, doc/*, etc.).
Updated Debian Live @MAJOR@: @MINOR@ released
735 • Las imágenes se crean y se almacenan en cdimage.debian.org.

50
Manual Debian Live

The Debian Live project is pleased to announce the @MINOR@ update of ←- lo tanto, para clonar live-manual en sólo lectura, lanzar:
the
Live images for the stable distribution Debian @MAJOR@ (codename "←- 749
@CODENAME@").

The images are available for download at: $ git clone git://live.debian.net/git/live-manual.git

<http://live.debian.net/cdimage/release/current/>
O, 750
and later at:
751
<http://cdimage.debian.org/cdimage/release/current-live/>

This update includes the changes of the Debian @MINOR@ release: $ git clone https://live.debian.net/git/live-manual.git

<http://lists.debian.org/debian-announce/@ANNOUNCE@>
O, 752
Additionally it includes the following Live-specific changes:
753

* [INSERT LIVE-SPECIFIC CHANGE HERE]


* [INSERT LIVE-SPECIFIC CHANGE HERE]
* [LARGER ISSUES MAY DESERVE THEIR OWN SECTION] $ git clone http://live.debian.net/git/live-manual.git

About Debian Live


----------------- Las direcciones para clonar con permiso de escritura tienen la 754

The Debian Live project produces the tools used to build official forma: git@live.debian.net:/repositorio.
Debian Live systems and the official Debian Live images themselves.
Así que, de nuevo, para clonar live-manual a través de ssh 755
About Debian
------------
escribir:
The Debian Project is an association of Free Software developers who
756
volunteer their time and effort in order to produce the completely free
operating system Debian.

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


Contact Information
-------------------
For further information, please visit the Debian Live web pages at
<http://live.debian.net/>, or contact the Debian Live team at
El árbol git se compone de varias ramas diferentes. Las ramas 757

<debian-live@lists.debian.org>. debian y debian-next son particularmente notables porque


contienen el trabajo real que, con el tiempo, será incluido en
cada nueva versión.
747 17. Repositorios Git Después de clonar cualquiera de los repositorios existentes, 758

nos encontramos en la rama debian . Esto es apropiado para


748 La lista de todos los repositorios disponibles está en echar un vistazo al estado de la última versión del proyecto,
‹http://live.debian.net/gitweb/›. Las URLs git del proyecto tienen la pero antes de empezar a trabajar es fundamental cambiar a la
forma: protocolo://live.debian.net/git/repositorio. Por rama debian-next . Para ello:

51
Manual Debian Live

759 Ejemplos 765

$ git checkout debian-next


18. Ejemplos 766

Este capítulo ofrece ejemplos de creación de imágenes para 767


760 La rama debian-next , la cual no es siempre fast-forward,
casos de uso específicos de Debian Live. Si se es nuevo en la
es donde se realizan todos los cambios antes de que se
creación de una imagen propia de Debian Live, se recomienda
fusionen en la rama debian . Para hacer una analogía, es
leer primero los tres tutoriales en secuencia, ya que cada uno
como un campo de pruebas. Si se está trabajando en esta
enseña nuevas técnicas que ayudan a utilizar y entender los
rama y se necesita hacer un pull, se tendrá que hacer un git
ejemplos restantes.
pull --rebase para que las modificaciones locales se guarden
mientras se actualiza desde el servidor y entonces los cambios
locales se pondrán encima de todos los demás. 18.1 Uso de los ejemplos 768

Para poder seguir estos ejemplos es necesario un sistema 769


761 17.1 Manejo de múltiples repositorios
donde crearlos que cumpla con los requisitos enumerados en
‹Requisitos› y tener live-build instalado tal y como se describe
762 Si se tiene la intención de clonar varios de los repositorios de
en ‹Instalación de live-build›.
Debian Live y cambiar a la rama debian-next de inmediato
para comprobar el último código, escribir un parche o contribuir Hay que tener en cuenta que, para abreviar, en estos ejemplos 770

con una traducción se debe saber que el servidor proporciona no se especifica una réplica local para la creación de la
un fichero mrconfig para facilitar el manejo de múltiples imagen. Es posible acelerar las descargas considerablemente
repositorios. Para utilizarlo es necesario instalar el paquete mr si se utiliza una réplica local. Se puede especificar las opciones
y a continuación, lanzar: cuando se usa lb config, tal y como se describe en ‹Réplicas
de Distribution utilizadas durante la creación›, o para más
763
comodidad, establecer el valor por defecto para la creación
del sistema en /etc/live/build.conf. Basta con crear este
$ mr bootstrap http://live.debian.net/other/mr/mrconfig
fichero y en el mismo, establecer las variables LB_MIRROR_*
correspondientes a la réplica preferida. Todas las demás
764 Este comando automáticamente clonará y cambiará a la rama
réplicas usadas en el proceso de creación usarán estos
debian-next los repositorios de desarrollo de los paquetes
valores por defecto. Por ejemplo:
Debian producidos por el proyecto. Estos incluyen, entre otros,
771
el repositorio live-images, que contiene las configuraciones
utilizadas para las imágenes prefabricadas que el proyecto
publica para uso general. Para obtener más información LB_MIRROR_BOOTSTRAP="http://mirror/debian/"
LB_MIRROR_CHROOT_SECURITY="http://mirror/debian-security/"
sobre cómo utilizar este repositorio, consultar ‹Clonar una LB_MIRROR_CHROOT_BACKPORTS="http://mirror/debian-updates/"
configuración publicada a través de Git›

52
Manual Debian Live

772 18.2 Tutorial 1: Una imagen predeterminada 18.3 Tutorial 2: Una utilidad de navegador web 781

773 Caso práctico: Crear una primera imagen sencilla, Caso práctico: Crear una utilidad de navegador web, 782

aprendiendo los fundamentos de live-build. aprendiendo a aplicar personalizaciones.


774 En este tutorial, vamos a construir una imagen ISO hybrid por En este tutorial, se creará una imagen adecuada para su uso 783

defecto de Debian Live que contenga únicamente los paquetes como utilidad de navegador web, esto sirve como introducción
base (sin Xorg) y algunos paquetes de soporte Debian Live, a la personalización de las imágenes de Debian Live.
como un primer ejercicio en el uso de live-build. 784

775 No puede ser más fácil que esto:


$ mkdir tutorial2
776 $ cd tutorial2
$ echo "task-lxde-desktop iceweasel" >> config/package-lists/my.list.←-
chroot
$ mkdir tutorial1 ; cd tutorial1 ; lb config

La elección de LXDE para este ejemplo refleja el deseo de 785

777 Si se examina el contenido del directorio config/ se verá ofrecer un entorno de escritorio mínimo, ya que el enfoque de la
almacenada allí una configuración en esqueleto preparada imagen es el uso individual que se tiene en mente, el navegador
para ser personalizada o en este caso para ser usada web. Se podría ir aún más lejos y ofrecer una configuración por
inmediatamente para construir una imagen por defecto. defecto para el navegador web en config/includes.chroot/-
etc/iceweasel/profile/, o paquetes adicionales de soporte
778 Ahora, como superusuario, crear la imagen, guardando un log
con tee mientras se crea. para la visualización de diversos tipos de contenido web, pero
se deja esto como un ejercicio para el lector.
779
Crear la imagen, de nuevo como superusuario, guardando un 786

log como en el ‹Tutorial 1›:


# lb build 2>&1 | tee build.log
787

780 Suponiendo que todo va bien, después de un rato, el directorio


# lb build 2>&1 | tee build.log
actual contendrá binary.hybrid.iso. Esta imagen ISO híbrida
se puede arrancar directamente en una máquina virtual como
se describe en ‹Probar una imagen ISO con Qemu› y en De nuevo, verificar que la imagen está bien y probarla igual que 788

‹Probar una imagen ISO con virtualbox› o bien ser copiada en el ‹Tutorial 1›.
a un medio óptico como un dispositivo USB tal y como se
describe en ‹Grabar una imagen ISO en un medio físico› 18.4 Tutorial 3: Una imagen personalizada 789

y ‹Copiar una imagen ISO híbrida en un dispositivo USB›,


respectivamente. Caso práctico: Crear un proyecto para conseguir una 790

53
Manual Debian Live

imagen personalizada, que contenga el software favorito para


$ lb config
llevárselo en una memoria USB donde quiera que se vaya, y
hacerlo evolucionar en revisiones sucesivas, tal y como vayan
Completar la lista de paquetes local: 798
cambiando las necesidades y preferencias.
799
791 Como nuestra imagen personalizada irá cambiando durante un
número de revisiones, si se quiere ir siguiendo esos cambios,
$ echo "task-lxde-desktop iceweasel xchat" >> config/package-lists/my.←-
probar nuevas cosas de forma experimental y posiblemente list.chroot
volver atrás si no salen bien, se guardará la configuración en
el popular sistema de control de versiones git. También se En primer lugar con --architectures i386 se asegura de que 800
utilizarán las mejores prácticas de configuración automática en un sistema de creación amd64 se crea una versión de 32-
a través de scripts auto como se describe en ‹Gestionar una bits adecuada para ser usada en la mayoría de máquinas. En
configuración›. segundo lugar, se usa --linux-flavours 686-pae porque no
se espera usar esta imagen en sistemas mucho más viejos.
792 18.4.1 Primera revisión En tercer lugar se elige el metapaquete lxde para proporcionar
un escritorio mínimo. Y, por último, se añaden dos paquetes
793 iniciales favoritos: iceweasel y xchat.
Ahora, crear la imagen: 801
$ mkdir -p tutorial3/auto
$ cp /usr/share/doc/live-build/examples/auto/* tutorial3/auto/ 802
$ cd tutorial3

# lb build
794 Editar auto/config del siguiente modo:
795 Tener en cuenta que a diferencia de los dos primeros tutoriales, 803

ya no se tiene que escribir 2>&1 |tee build.log ya que esto


#!/bin/sh
se incluye ahora en auto/build.

lb config noauto \ Una vez que se ha probado la imagen (como en el ‹Tutorial 1›) 804

--architectures i386 \ y se ha asegurado de que funciona, es el momento de iniciar


--linux-flavours 686-pae \
"${@}"
el repositorio git, añadiendo sólo los scripts auto que se acaba
de crear, y luego hacer el primer commit:
796 Ejecutar lb config para generar el árbol de configuración, 805

utilizando el script auto/config que justo se acaba de


crear: $ git init
$ cp /usr/share/doc/live-build/examples/gitignore .gitignore
797 $ git add .

54
Manual Debian Live

$ git commit -a -m "Initial import."


$ git commit -a -m "Adding vlc media player."

Por supuesto, es posible hacer cambios más complicados en la 816


806 18.4.2 Segunda revisión
configuración, tal vez añadiendo ficheros en los subdirectorios
de config/. Cuando se envian nuevas revisiones, hay que
807 En esta revisión, vamos a limpiar desde la primera creación,
tener cuidado de no editar a mano o enviar los ficheros del nivel
agregar el paquete vlc a nuestra configuración, crear de nuevo,
superior en config que contienen variables LB_* ya que estos
probar y enviar los cambios al git.
son productos de creación también y son siempre limpiados
808 El comando lb clean limpiará todos los ficheros generados por lb clean y recreados con lb config a través de sus
en las primeras creaciones a excepción del caché, lo cual respectivos scripts auto.
ahorra tener que volver a descargar de nuevo los paquetes.
Hemos llegado al final de nuestra serie de tutoriales. Si bien 817
Esto asegura que el siguiente lb build vuelva a ejecutar
son posibles muchos más tipos de personalización, aunque
todas las fases para regenerar los ficheros de nuestra nueva
sólo sea con las pocas características explicadas en estos
configuración.
sencillos ejemplos, se puede crear una variedad casi infinita
809 de imágenes diferentes. Los ejemplos que quedan en esta
sección abarcan varios casos de usos diferentes procedentes
# lb clean de las experiencias recogidas de los usuarios de Debian
Live.
810 Añadir ahora el paquete vlc a nuestra lista de paquetes local
en config/package-lists/my.list.chroot: 18.5 Un cliente VNC kiosk 818

811
Caso Práctico: Crear una imagen con live-build para que se 819

$ echo vlc >> config/package-lists/my.list.chroot


conecte directamente a un servidor VNC al arrancar.
Crear un directorio de construcción y lanzar una configuración 820

812 Crear de nuevo: de esqueleto en su interior, desactivando «recommends» para


813
conseguir un sistema mínimo. Y a continuación, crear dos
listas iniciales de paquetes: La primera generada con un script
proporcionado por live-build llamado Packages (ver ‹Generar
# lb build
listas de paquetes›), y la segunda lista una que incluya xorg,
gdm3, metacity y xvnc4viewer.
814 Probar, y cuando se esté satisfecho, enviar la próxima revisión
821
al git:
815

55
Manual Debian Live

$ mkdir vnc-kiosk-client
$ cd vnc-kiosk-client $ mkdir -p config/includes.chroot/etc/skel
$ lb config -a i386 -k 686-pae --apt-recommends false $ cat > config/includes.chroot/etc/skel/.xsession << EOF
$ echo '! Packages Priority standard' > config/package-lists/standard.←- #!/bin/sh
list.chroot
$ echo "xorg gdm3 metacity xvnc4viewer" > config/package-lists/my.list.←- /usr/bin/metacity &
chroot /usr/bin/xvncviewer 192.168.1.2:1

exit
822 Como se explica en ‹Ajuste de APT para ahorrar espacio› EOF

puede ser necesario volver a agregar algunos paquetes


recomendados para que la imagen funcione correctamente. Crear la imagen: 829

823 Una manera fácil de conocer todos los «recommends» es 830

utilizar apt-cache. Por ejemplo:


# lb build
824

$ apt-cache depends live-config live-boot


Disfrutarlo. 831

825 En este ejemplo, descubrimos que teníamos que volver a 18.6 Una imagen básica para un pendrive USB de 832
incluir varios paquetes recomendados por live-config y live- 128MB
boot: user-setup para hacer funcionar el inicio automático
de sesión y sudo programa esencial para apagar el sistema. Caso Práctico: Crear una imagen quitando algunos 833

Además, podría ser útil añadir live-tools para poder copiar componentes para que quepa en un pendrive USB de
la imagen en la memoria RAM y eject para finalmente poder 128MB dejándo un poco de espacio libre para poder usarlo
expulsar el medio en vivo. Por eso: para lo que se quiera.
826
Al optimizar una imagen para adaptarla al tamaño de algunos 834

medios de almacenamiento, es necesario comprender el


$ echo "live-tools user-setup sudo eject" > config/package-lists/←- equilibrio que se está haciendo entre tamaño y funcionalidad.
recommends.list.chroot
En este ejemplo, se recorta tanto sólo para dar cabida a
material adicional dentro de un tamaño de 128MB, pero
827 Después, crear el directorio /etc/skel en config/includes.chroot sin hacer nada para destruir la integridad de los paquetes
y poner dentro un fichero .xsession personalizado para el que contiene, tales como la depuración de las variantes
usuario que por defecto ejecutará metacity e iniciará el locales a través del paquete localepurge u otro tipo de
xvncviewer, conectándo al puerto 5901 de un servidor en optimizaciones «intrusivas». Cabe destacar que se utiliza
192.168.1.2: --debootstrap-options para crear un sistema mínimo desde
828 el principio.

56
Manual Debian Live

835 podría esperarse que estuvieran alli. --debootstrap-options


“--variant=minbase” preinstala un sistema mínimo desde el
$ lb config -k 486 --apt-indices false --apt-recommends false --←- principio. El hecho de no incluir automáticamente paquetes
debootstrap-options "--variant=minbase" --firmware-chroot false --←- de firmware con --firmware-chroot false también ahorra
memtest none
un poco de espacio. Y por último, --memtest none evita la
instalación de un comprobador de memoria.
836 Para hacer que la imagen funcione correctamente, tenemos
que volver a añadir, al menos, dos paquetes recomendados, Nota: También se puede conseguir un sistema mínimo 842

que son excluidos por la opción --apt-recommends false. Ver utilizando scripts gancho como por ejemplo el script
‹Ajuste de APT para ahorrar espacio› stripped.chroot que se encuentra en /usr/share/doc/-
837 live-build/examples/hooks, que puede reducir aún más el
tamaño de la imagen hasta 62MB. Sin embargo, el script
$ echo "user-setup sudo" > config/package-lists/recommends.list.chroot
elimina documentación y otros ficheros de los paquetes
instalados en el sistema. Esto viola la integridad de los
838 Ahora, crear la imagen de forma habitual: paquetes y como se comenta en el encabezado del script,
puede tener consecuencias imprevistas. Es por eso por lo
839
que el uso de debootstrap es el método recomendado para
conseguir este objetivo.
# lb build 2>&1 | tee build.log

840 En el sistema del autor, en el momento de escribir esto, la 18.7 Un escritorio GNOME con variante local e 843

configuración anterior produjo una imagen de 77MB. Esto se instalador


compara favorablemente en tamaño con la imagen de 177MB
producida por la configuración por defecto en el ‹Tutorial Caso práctico: Crear una imagen que contenga el escritorio 844

1›. gráfico GNOME, la variante local Suiza y un instalador.


841 El mayor ahorro de espacio aquí, en comparación con Se desea crear una imagen iso-hybrid para la arquitectura 845
la creación de una imagen por defecto en un sistema de i386 con un escritorio preferido, en este caso el GNOME, que
arquitectura i386 es seleccionar sólo la versión del kernel 486 contiene todos los mismos paquetes que serían instalados
en lugar de la de por defecto -k “486 686-pae”. Dejar fuera por el programa de instalación estándar de Debian para
los índices de APT con --apt-indices false también ahorra GNOME.
una cantidad importante de espacio, la desventaja es que
será necesario hacer un apt-get update antes de usar apt en El primer problema es descubrir los nombres de las tareas 846

el sistema en vivo. Excluyendo los paquetes recomendados adecuadas. En la actualidad, live-build no puede ayudar en
con --apt-recommends false se ahorra un poco de espacio esto. Aunque podríamos tener suerte y encontrarlos a base
adicional a costa de omitir algunos paquetes que de otro modo de pruebas, hay una herramienta, grep-dctrl, para extraerlos

57
Manual Debian Live

de las descripciones de tareas en tasksel-data, para proceder, $ mkdir live-gnome-ch


$ cd live-gnome-ch
asegurarse de tener ambas cosas: $ lb config \
847 -a i386 \
-k 486 \
--bootappend-live "boot=live config locales=de_CH.UTF-8 keyboard-←-
# apt-get install dctrl-tools tasksel-data layouts=ch" \
--debian-installer live
$ echo '! Packages Priority standard' > config/package-lists/standard.←-
848 Ahora podemos buscar las tareas apropiadas, primero list.chroot
$ echo task-gnome-desktop task-german task-german-desktop >> config/←-
con: package-lists/desktop.list.chroot
$ echo debian-installer-launcher >> config/package-lists/installer.list←-
849
.chroot

$ grep-dctrl -FTest-lang de /usr/share/tasksel/descs/debian-tasks.desc ←-


Tener en cuenta que se ha incluido el paquete debian-installer- 854
-sTask
Task: german launcher para lanzar el instalador desde el escritorio en
vivo, y que también se ha especificado el kernel 486, ya
850 Con este comando, se descubre que la tarea se llama, que actualmente es necesario que el instalador y el kernel
sencillamente, german. Ahora, para encontrar las tareas del sistema en vivo coincidan para que el lanzador funcione
relacionas: correctamente.
851

Apéndice 855

$ grep-dctrl -FEnhances german /usr/share/tasksel/descs/debian-tasks.←-


desc -sTask 18.8 Guidelines for authors 856
Task: german-desktop
Task: german-kde-desktop
This section deals with some general considerations to be 857

852 En el momento del arranque se va a generar la variante local taken into account when writing technical documentation
de_CH.UTF-8 y seleccionar la distribución del teclado ch . for live-manual. They are divided into linguistic features and
Ahora vamos a poner las piezas juntas. Recordando de ‹Utilizar recommended procedures.
metapaquetes› que los metapaquetes tienen el prefijo task-, Note: Authors should first read ‹Contributing to this 858

especificamos estos parámetros del lenguaje en el arranque y document›


a continuación añadimos los paquetes de prioridad estándar y
los metapaquetes que hemos descubierto a la lista de paquetes
18.8.1 Linguistic features 859
de la siguiente manera:
853 • Use plain English 860

Keep in mind that a high percentage of your readers are 861

58
Manual Debian Live

not native speakers. So as a general rule try to use short, Give as much information as necessary but do not give more
meaningful sentences, followed by a full stop. information than necessary, this is to say, do not explain
unnecessary details. Your readers are intelligent. Presume
862 This does not mean that you have to use a simplistic, naive
some previous knowledge on their part.
style. It is a suggestion to try to avoid, as much as possible,
complex subordinate sentences that make the text difficult to • Minimize translation work 872

understand for non-native speakers.


Keep in mind that whatever you write will have to be translated 873

863 • Variety of English into several other languages. This implies that a number of
people will have to do an extra work if you add useless or
864 The most widely spread varieties of English are British and
redundant information.
American so it is very likely that most authors will use either one
or the other. In a collaborative environment, the ideal variety • Be coherent 874

would be “International English” but it is very difficult, not to say As suggested before, it is almost impossible to standardize a 875
impossible, to decide on which variety among all the existing collaborative document into a perfectly unified whole. However,
ones, is the best to use. every effort on your side to write in a coherent way with the rest
865 We expect that different varieties may mix without creating of the authors will be appreciated.
misunderstandings but in general terms you should try to be • Be cohesive 876
coherent and before deciding on using British, American or
any other English flavour at your discretion, please take a look Use as many text-forming devices as necessary to make your 877

at how other people write and try to imitate them. text cohesive and unambiguous. (Text-forming devices are
linguistic markers such as connectors).
866 • Be balanced
• Be descriptive 878
867 Do not be biased. Avoid including references to ideologies
completely unrelated to live-manual. Technical writing should It is preferable to describe the point in one or several 879

be as neutral as possible. It is in the very nature of scientific paragraphs than merely using a number of sentences in
writing. a typical “changelog” style. Describe it! Your readers will
appreciate it.
868 • Be politically correct
• Dictionary 880

869 Try to avoid sexist language as much as possible. If you need


Look up the meaning of words in a dictionary or encyclopedia 881
to make references to the third person singular preferably use
if you do not know how to express certain concepts in English.
“they” rather than “he” or “she” or awkward inventions such as
But keep in mind that a dictionary can either be your best friend
“s/he”, “s(he)” and the like.
or can turn into your worst enemy if you do not know how to use
870 • Be concise it correctly.
871 Go straight to the point and do not wander around aimlessly. English has the largest vocabulary that exists (with over one 882

59
Manual Debian Live

million words). Many of these words are borrowings from other 890 Even though you are encouraged to use plain, everyday
languages. When looking up the meaning of words in a bilingual English, technical writing belongs to the formal register of the
dictionary the tendency of a non-native speaker is to choose language.
the one that sounds more similar in their mother tongue. This
Try to avoid slang, unusual abbreviations that are difficult to 891
often turns into an excessively formal discourse which does not
understand and above all contractions that try to imitate the
sound quite natural in English.
spoken language. Not to mention typical irc and family friendly
883 As a general rule, if a concept can be expressed using different expressions.
synonyms, it is a good advice to choose the first word proposed
by the dictionary. If in doubt, choosing words of Germanic
origin (Usually monosyllabic words) is often the right thing to 18.8.2 Procedures 892

do. Be warned that these two techniques might produce a


rather informal discourse but at least your choice of words will • Test before write 893

be of wide use and generally accepted. It is important that authors test their examples before adding 894

884 Using a dictionary of collocations is recommended. They are them to live-manual to ensure that everything works as
extremely helpful when it comes to know which words usually described. Testing on a clean chroot or VM can be a good
occur together. starting point. Besides, it would be ideal if the tests were then
carried out on different machines with different hardware to
885 Again it is a good practice to learn from the work of others. spot possible problems that may arise.
Using a search engine to check how other authors use certain
expressions may help a lot. • Examples 895

886 • False friends, idioms and other idiomatic expressions When providing an example try to be as specific as you can. An 896

example is, after all, just an example.


887 Watch out for false friends. No matter how proficient you are in a
foreign language you cannot help falling from time to time in the It is often better to use a line that only applies to a specific case 897

trap of the so called “false friends”, words that look similar in two than using abstractions that may confuse your readers. In this
languages but whose meanings or uses might be completely case you can provide a brief explanation of the effects of the
different. proposed example.

888 Try to avoid idioms as much as possible. “Idioms” are There may be some exceptions when the example suggests 898

expressions that may convey a completely different using some potentially dangerous commands that, if misused,
meaning from what their individual words seem to mean. may cause data loss or other similar undesirable effects. In this
Sometimes, idioms are difficult to understand even for native case you should provide a thorough explanation of the possible
speakers! side effects.

889 • Avoid slang, abbreviations, contractions... • External links 899

60
Manual Debian Live

Links to external sites should only be used when the information 900 subtitles. e.g. 1, 1.1, 1.1.1, 1.1.2 ... 1.2, 1.2.1, 1.2.2 ... 2, 2.1 ...
on those sites is crucial when it comes to understanding a and so on. See markup below.
special point. Even so, try to use links to external sites
If you have to enumerate a series of steps or stages in your 912
as sparsely as possible. Internet links are likely to change
description, you can also use ordinal numbers: First, second,
from time to time resulting in broken links and leaving your
third ... or First, Then, After that, Finally ... Alternatively you can
arguments in an incomplete state.
use bulleted items.
901 Besides, people who read the manual offline will not have the • Markup 913
chance to follow those links.
And last but not least, live-manual uses ‹SiSU› to process 914
902 • Avoid branding and things that violate the license under which the text files and produce a multiple format output. It is
the manual is published recommended to take a look at ‹SiSU's manual› to get familiar
903 Try to avoid branding as much as possible. Keep in mind with its markup, or else type:
that other downstream projects might make use of the 915

documentation you write. So you are complicating things for


them if you add certain specific material. $ sisu --help markup

904 live-manual is licensed under the GNU GPL. This has a


Here are some markup examples that may prove useful: 916
number of implications that apply to the distribution of the
material (of any kind, including copyrighted graphics or logos) - For emphasis/bold text: 917

that is published with it. 918

905 • Write a first draft, revise, edit, improve, redo if necessary


*{foo}* or !{foo}!
906 - Brainstorm!. You need to organize your ideas first in a logical
sequence of events. produces: foo or foo . Use it to emphasize certain key 919

907 - Once you have somehow organized those ideas in your mind words.
write a first draft. - For italics: 920

908 - Revise grammar, syntax and spelling. Keep in mind that the 921

proper names of the releases, such as wheezy or sid , should


not be capitalized when referred to as code names. /{foo}/

909 - Improve your statements and redo any part if necessary.


produces: foo. Use them e.g. for the names of Debian 922

910 • Chapters packages.


911 Use the conventional numbering system for chapters and - For monospace: 923

61
Manual Debian Live

924 information on how to produce translated work that complies


with Debian quality standards.
#{foo}#
Note: Translators should also read ‹Contributing to this 934

document›. In particular the section ‹Translation›


925 produces: foo. Use it e.g. for the names of commands. And also
to highlight some key words or things like paths.
18.9.1 Translation hints 935
926 - For code blocks:
927 • Comments 936

The role of the translator is to convey as faithfully as possible 937


code{
the meaning of words, sentences, paragraphs and texts as
$ foo written by the original authors into their target language.
# bar
So they should refrain from adding personal comments or extra 938
}code
bits of information of their own. If they want to add a comment
for other translators working on the same documents, they can
928 produces: leave it in the space reserved for that. That is, the header of
929 the strings in the po files preceded by a number sign # . Most
graphical translation programs can automatically handle those
$ foo
types of comments.
# bar
• TN, Translator's Note 939

930 Use code{ to open and }code to close the tags. It is important It is perfectly acceptable however, to include a word or an 940

to remember to leave a space at the beginning of each line of expression in brackets in the translated text if, and only if, that
code. makes the meaning of a difficult word or expression clearer
to the reader. Inside the brackets the translator should make
evident that the addition was theirs using the abbreviation “TN”
931 18.9 Guidelines for translators
or “Translator's Note”.
932 This section deals with some general considerations to be • Impersonal sentences 941

taken into account when translating the contents of live-


Documents written in English make an extensive use of the 942
manual.
impersonal form “you”. In some other languages that do not
933 As a general recommendation, translators should have read share this characteristic, this might give the false impression
and understood the translation rules that apply to their specific that the original texts are directly addressing the reader when
languages. Usually, translation groups and mailing lists provide they are actually not doing so. Translators must be aware

62
Manual Debian Live

of that fact and reflect it in their language as accurately as 953 Translators should never translate:
possible.
- The code names of releases (which should be written in 954

943 • False friends lowercase)

944 The trap of “false friends” explained before especially applies - The names of programs 955

to translators. Double check the meaning of suspicious false - The commands given as examples 956

friends if in doubt.
- Metadata (often between colons :metadata: ) 957

945 • Markup - Links 958

946 Translators working initially with pot files and later on with po - Paths 959
files will find many markup features in the strings. They can
translate the text anyway, as long as it is translatable, but it is
extremely important that they use exactly the same markup as
the original English version.

947 • Code blocks


948 Even though the code blocks are usually untranslatable,
including them in the translation is the only way to score
a 100% complete translation. And even though it means
more work at first because it requires the intervention of the
translators if the code changes, it is the best way, in the long
run, to identify what has already been translated and what has
not when checking the integrity of the .po files.

949 • Newlines
950 The translated texts need to have the exact same newlines as
the original texts. Be careful to press the “Enter” key or type if
they appear in the original files. These newlines often appear,
for instance, in the code blocks.
951 Make no mistake, this does not mean that the translated text
needs to have the same length as the English version. That is
nearly impossible.

952 • Untranslatable strings

63
Manual Debian Live

Metadata Generated
Última generación (metaverse) del documento: 2013-05-07 08:46:18 +0000
SiSU Metadata, document information Generado por: SiSU 3.3.2 of 2012w26/6 (2012-06-30)
Versión de Ruby: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
Document Manifest @:
‹http://live.debian.net/manual/manual/manifest/live-manual.es.html›
Título: Manual Debian Live
Creador: Proyecto Debian Live <debian-live@lists.debian.org>
Derechos: Copyright (C) 2006-2013 Debian Live Project;
License: Este programa es software libre: puede ser redistribuido y/o modificado
bajo los términos de la GNU General Public License publicada por la Free Software
Foundation, bien de la versión 3 de la Licencia, o (a su elección) cualquier versión
posterior.

Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA
GARANTÍA, incluso sin la garantía implícita de COMERCIALIZACIÓN o IDONEIDAD
PARA UN PROPÓSITO PARTICULAR. Consulte la GNU General Public License para
más detalles.

Debería haber recibido una copia de la General Public License GNU junto con
este programa. Si no, vea ‹http://www.gnu.org/licenses/›.

El texto completo de la GNU Licencia Pública General se pueden encontrar


en /usr/share/common-licenses/GPL-3
Editor: Proyecto Debian Live <debian-live@lists.debian.org>
Fecha: 30.04.2013

Version Information
Fichero fuente: live-manual.ssm.sst
Filetype: SiSU text 2.0,
Source Digest: SHA256(live-manual.ssm.sst)=5c175d485fd4c39c11b2a235-
983dc3e3102ffb40b0ecc4fb921a9d410d72aa80
Skin Digest: SHA256(skin_debian-live.rb)=be92275c5ee3367edeed6539-
01c34601c545c50acecc23ab65594d8e2f4df9af

64

También podría gustarte