Está en la página 1de 17

Construyendo una Distribucin Debian Adaptada

Ernesto Hernndez-Novich Marzo 6, 2008

Resumen
El presente documento es una gua general en el establecimiento de una infraestructura de desarrollo que permita producir una Distribucin de Software Libre como una serie de adaptaciones a Debian GNU/Linux siguiendo los principios establecidos y recomendados por las

Custom Debian Distributions (CDD).

Este documento es resultado del proceso de investigacin y desarrollo para la construccin de la Distribucin GNU/Linux del CNTI, en el marco del proyecto Debian CDD CNTI. Agradecemos enviar correcciones y sugerencias al autor, a travs de la direccin de correo

<emhn@usb.ve>.

1.

Ambiente de Desarrollo

1.1. Rplica (mirror ) del Repositorio Debian


Puesto que la construccin de una CDD aprovecha los mismos paquetes provistos por distribucin Debian GNU/Linux el proceso de construccin podra llevarse a cabo utilizando los repositorios y rplicas ociales del Proyecto Debian, sin embargo es conveniente contar con una rplica local del repositorio para agilizar la descarga de paquetes. La rplica local a utilizar debe ser una rplica es, debe incluir la lista de paquetes y el

pool

completa para la arquitectura de inters, esto

completo de paquetes asociados a la distribucin

objetivo, adems de los componentes del instalador Debian. La mayor parte de los inconvenientes y fallas durante la construccin de la imagen estn relacionadas con el uso de una rplica parcial (

pool

incompleto) o incompleta (sin componentes de instalador y documentacin).

1.1.1. Construccin de la rplica


La manera simple y expedita de construir una rplica con las caractersticas descritas consiste en utilizar la herramienta herramienta denominada

anonftpsync [1] provista por el proyecto Debian. Existe otra debmirror que tambin permite crear rplicas parciales, sin embargo

tiene inconvenientes para replicar los elementos del instalador Debian, por tanto es preferible evitarla. El proceso de construccin debe cumplir los siguientes pasos: Disponga de un sistema Debian GNU/Linux instalado con Debian Etch. En lo que resta de este documento nos referiremos a este sistema como la direccin IP correspondiente.

debian.ejemplo.com,

siendo

conveniente que en el servicio DNS de la red aparezca registrado este nombre asociado a

El sistema ha de contar con suciente espacio en disco [2] para la construccin de la rplica. El espacio asignado para la rplica debe estar en la particin sobre la cual resida

/var/www/debian.
Instale Apache2 (aptitude

install apache2) y asegrese que cualquier cliente Web puede visitar http://debian.ejemplo.com/debian y acceder al directorio raz de la rplica. rsync (aptitude install rsync). anonftpsync en el directorio /usr/local/sbin y modifquelo para ajus-

Instale

Coloque el script

tarse a sus necesidades particulares de replicacin. El script tiene comentarios que explican con detalle todas las opciones. Como mnimo es necesario especicar:

El directorio en el cual se construir la rplica, indicado en la variable El servidor remoto a partir del cual tomar la copia utilizando la variable

TO.
indicado en

RSYNC_HOST.

rsync,

Puede usarse cualquiera de los servidores principales [3] del

proyecto Debian GNU/Linux.

En el servidor remoto debe existir un directorio raz sobre el cual operar el indicado en la variable

RSYNC_DIR.

rsync,

La direccin de correo del usuario responsable del mirror, indicada en la variable

MAILTO,

de manera que las operaciones de sincronizacin enven un reporte de xito

o fallo automticamente. As, para hacer una rplica completa de todas las distribuciones y todas las arquitecturas basta utilizar algo similar a:

TO=/var/www/debian RSYNC_HOST=ftp.ch.debian.org RSYNC_DIR=debian/ MAILTO=mirroradmin@ejemplo.com


Una vez modicado el script, utilice el comando

root

y grupo

root,

y el comando

chmod

chown

para que pertenezca al usuario

para que slo el dueo pueda ejecutarlo. Si se

ejecuta el comando manualmente, en el archivo ejecute el comando tomar un tiempo

/var/log/debian-mirror.log aparecern

los resultados del trabajo de sincronizacin paulatinamente. Note que la primera vez que

considerable en culminar su trabajo.

1.1.2. Mantenimiento de la rplica


Para que la rplica sea til es necesario mantenerla actualizada. El script pues utiliza

anonftpsync est

diseado no slo para la creacin inicial, sino tambin para el mantenimiento diario de la rplica,

rsync para descargar las diferencias interdiarias, eliminar los archivos a medida que /etc/crontab

se eliminan del repositorio principal y ajustar las listas de paquetes. Para que el mantenimiento de la rplica sea automtico, incluya la ejecucin del comando en el archivo del sistema. Es conveniente hacer no menos de una sincronizacin

diaria, de manera que puede colocarse una lnea similar a

30 1 * * * root /usr/local/sbin/anonftpsync > /dev/null 2>&1


con lo cual se logra que la actualizacin diaria comience a la 1:30 de todos los das.

1.1.3. Rplicas de otros repositorios


Para ahorrar ancho de banda y facilitar el acceso a paquetes de inters que no estn en el repositorio principal del Proyecto Debian, es conveniente crear rplicas locales en otras ubicaciones. En particular, el mecanismo CDD es capaz de aprovechar los parches de seguridad emitidos regularmente por el Proyecto Debian [4] y los paquetes para extensiones multimedia provistos por Christian Marillat [5]. En estos casos, puede repetirse el proceso de replicacin pero utilizando diferentes directorios dentro del servidor. Por ejemplo, para construir una rplica de los paquetes para extensiones multimedia provistos por Christian Marillat, pero solamente para las arquitecturas i386 y amd64, puede utilizarse un script similar a

#!/bin/bash DM=/usr/bin/debmirror HOST=www.debian-multimedia.org DIST="etch,lenny,sid" ARCH="i386,amd64" SECT="main" $DM /var/www/debian-multimedia/ \ --progress \ --method=http \ --root='.' \ --rsync-batch=500000 \ --host=$HOST \ --dist=$DIST \ --arch=$ARCH \ --section=$SECT \ --cleanup \ --source \ --getcontents \ --ignore-missing-release
En el resto del documento, asumiremos que existen rplicas par ambos repositorios adicionales, disponibles en el servidor a travs de los URL y

http://debian.ejemplo.com/debian-security http://debian.ejemplo.com/debian-multimedia respectivamente.

1.2. Estacin de Trabajo de Adaptacin.


Es necesario un equipo en el cual llevar a cabo la construccin de las imgenes de instalacin de los CDD, aplicando de forma iterativa el proceso descrito ms adelante. El proceso de construccin de las imgenes demanda una cantidad importante de espacio en disco, no solamente para contener las mltiples imagenes de CD-ROM y posiblemente DVD generadas durante el proceso, sino tambin los paquetes y elementos de conguracin intermedios que son necesarios durante el proceso, as como posiblemente la ejecucin de mquinas virtuales para vericar la funcionalidad de las distribuciones generadas.

1.2.1. Requerimientos.
Es recomendable que la estacin de trabajo para las tareas de adaptacin y produccin de los CDD tenga: Procesador de 32 bits de ltima generacin. Mientras ms rpido sea el procesador, ms eciente ser el proceso de generacin de las imgenes as como su prueba por simulacin. Un Pentium M de 1.4GHz sera lo

mnimo para ser productivo.

Suciente memoria RAM para poder ejecutar tanto el ambiente grco en el cual trabaja el usuario adaptador como sostener las mquinas virtuales para emulacin durante las pruebas. Lo

mnimo para ser productivo es contar con 512Mb de RAM.

Suciente espacio en disco para contener la instalacin del sistema con su ambiente de escritorio, las imgenes ISO que se generen, la rplica local de los paquetes que son utilizados para la confeccin del CDD y los archivos de conguracin que la denen. Lo mnimo para ser productivo es contar con 40Gb de disco duro. Una unidad CD-R/CD-RW para poder preparar las imgenes fsicas con las ISOs generadas durante el proceso de adaptacin.

1.2.2. Instalacin de Referencia.


Es recomendable que la estacin de trabajo para las tareas de adaptacin y produccin de CDD cumpla con al menos las siguientes caractersticas mnimas de instalacin: Debian GNU/Linux Etch con las ltimas actualizaciones de seguridad disponibles con el ambiente de escritorio tradicional y con el kernel adecuado para la mquina antriona. Asumiendo una mquina con arquitectura i386 (Pentium III, Pentium 4, Pentium M, Xeon, etc.) se utiliza

linux-image-2.6-686.

Puede utilizarse RAID por hardware, RAID por software, LVM o particiones crudas. En todo caso se sugiere el particionamiento

256Mb para / 1Gb para swap 4Gb para /usr 4Gb para /var El resto en /home

Instalar los paquetes

debootstrap
Instalar te

rsync, syslinux, netpbm, reprepro, apt-utils, wget, python, lsb-release de la versin Debian Etch usando aptitude o synaptic.

.deb

manualmente la ltima versin disponible del paquete debian-cd[9].1 El paquese descarga usando el navegador y una vez en el escritorio puede instalarse bien

sea con la herramienta grca

gdebi

o bien desde la lnea de comandos utilizando

dpkg.

1A

la fecha de escritura de este documento, la versin ms reciente de debian-cd es la 3.0.3.


4

Instalar quete

.deb

manualmente la ltima versin disponible del paquete simple-cdd [6].2 El pase descarga usando el navegador y una vez en el escritorio puede instalarse

bien sea con la herramienta grca

dpkg.

gdebi

o bien desde la lnea de comandos utilizando

Una vez creadas las imgenes ISO con las CDD, es posible vericar su funcionalidad utilizando algn emulador que permita construir mquinas virtuales con capacidades grcas. El autor utiliza QEmu para ese propsito, por tanto recomienda instalar:

El paquete

qemu,

para tener el emulador y todas sus dependencias.

El paquete con los mdulos del kernel apropiados para acelerar el funcionamiento de QEmu en la mquina antriona. Los mdulos dependen del kernel particular instalado, y para nuestro ejemplo sera necesario instalar

kqemu-modules-2.6-686.

2.

Procedimiento de Construccin
La metodologa de creacin de CDD utilizando

mientas existentes en Debian (debian-cd, inters.

simple-cdd consiste en utilizar las herrareprepro, debootstrap, debconf, etc.) para cons-

truir una imagen de instalacin basada en el Instalador Debian [7] pero con las adaptaciones de El desarrollador del CDD debe establecer la lista de paquetes a instalar y puede denir la lista de respuestas automticas (debconf sea menester (paquetes o dilogos de instalacin). Adicionalmente puede establecer la ejecucin de scripts desarrollados a la medida, para instalar o congurar cosas que no estn empaquetadas o que no aprovechen

preseeding ) a aplicar sobre aquellos componentes que

debconf.

El desarrollador del CDD puede construir varias listas y as denir perles (

proles )

que

permiten al usuario seleccionar durante la instalacin el conjunto de paquetes, conguraciones y scripts deseados. De ese modo es posible contar con una CDD que incluya variantes de instalacin a seleccionar de manera simple y directa. El proceso de desarrollo del CDD es iterativo: se inicia con una conguracin bsica conteniendo un nico perl simple, el cual va siendo enriquecido agregando ms paquetes, ms conguraciones y ms scripts de conguracin. En cada iteracin, se genera un ISO, se verica su funcionalidad en la mquina virtual y posiblemente en una mquina real. Se repite el proceso bien sea agregando o eliminando paquetes del perl, o construyendo un perl adicional.

2.1. Area de Trabajo


El desarrollo del CDD queda enteramente contenido en un directorio, de modo que si se desea construir varias CDD diferentes, cada una de ellas requerir un directorio de trabajo. El desarrollador del CDD ingresar en el sistema de desarrollo con su usuario habitual de trabajo (que

no sea root), y utilizar la lnea de comandos para preparar el area de trabajo

la fecha de escritura de este documento, la versin ms reciente de simple-cdd es la 0.3.6. conguracin detallada de QEmu escapa al alcance de este documento. Consulte la documentacin incluida con el paquete qemu para determinar las maneras en las cuales puede congurarse ms efectivamente.
3 La

2A

$ mkdir testcdd $ cd testcdd


El directorio estar inicialmente vaco y es responsabilidad del desarrollador del CDD crear el perl mnimo de trabajo, as como el archivo de conguracin para la herramienta

simple-cdd.

2.2. Creando el perl inicial


Dentro del directorio de trabajo, se construye a su vez otro directorio que debe tener el nombre

profiles.

$ mkdir profiles
Este directorio contendr todos los archivos necesarios para denir los perles. La herramienta identica los perles segn los nombres de los archivos que encuentra, de manera que para crear el perl de nombre

inicial,

es necesario crear:

inicial.packages

Este archivo de texto es

obligatorio

en la denicin del perl y contie-

ne un nombre de paquete Debian por cada lnea. Los paquetes que se indiquen en este archivo sern instalados y congurados automticamente durante el proceso de instalacin del CDD. No es necesario incluir las dependencias de los paquetes de inters pues la herramienta de construccin es capaz de determinarlas e incluirlas automticamente;

openoffice.org y se instalarn todos los paquetes de los cuales dependa openoffice.org, sin necesidad de enumerarlos. Las lneas en blanco y las lneas que comienzan con # se ignoran, as que pueden utilizarse como separadores o para
basta agregar la lnea documentar grupos de paquetes y las razones por las cuales se incluyen.

inicial.description

Este archivo de texto es

opcional y contiene una sola lnea de texto con

una descripcin resumida del propsito del perl. Lo que se escriba en este archivo ser utilizado como descripcin informativa para el usuario durante el proceso de instalacin, de manera que pueda decidir cuales perles seleccionar.

inicial.preseed
omisin (el

preseed )

Este archivo de texto es

opcional

y contiene las selecciones a utilizar por del archivo es

para las preguntas de conguracin que presente el Instalador De-

bian o cualquier paquete que utilice idntico al requerido por el

debconf para congurarse. El formato utilitario debconf-set-selections [8].

inicial.postinst

Este archivo de texto es

opcional

y contiene un script de shell que ser

ejecutado automticamente una vez que se hayan instalado todos los paquetes indicados en el perl. La intencin de este script es realizar las conguraciones manuales necesarias para aquellos paquetes que no aprovechan

debconf.

2.3. Archivo de conguracin.


Una vez denidos los archivos para uno o ms perles dentro del directorio proles, es necesario crear un archivo de conguracin para la creacin de la imagen. El paquete

simple-cdd

incluye un archivo de conguracin de ejemplo, completamente documentado, el cual puede

encontrarse en el directorio partida.

/usr/share/doc/simple-cdd/examples simple-cdd.conf

y que sirve de punto de

As construimos el archivo

dentro del directorio de trabajo conteniendo

# Directorio de trabajo simple_cdd_dir=`pwd` # Perfiles a incluir en el CD # (separados por espacio en blanco) profiles=inicial # Para que el perfil se instale sin preguntar auto_profiles=inicial # Paquete aplicador de perfiles profiles_udeb_dist=sid # Idioma del instalador language=Spanish # Pas por omisin country=Venezuela # Mirror principal del cual tomar paquetes # y componentes del instalador. server=debian.ejemplo.com debian_mirror=http://$server/debian rsync_debian_mirror=$server::debian mirror_components=main contrib non-free # Mirror para actualizaciones de seguridad security_mirror=http://debian.ejemplo.com/debian-security # Mirror extra con paquetes extra y componentes. debian_mirror_extra=http://debian.ejemplo.com/debian-multimedia mirror_components_extra=main # Directorio local con paquetes .deb extra a instalar # (posiblemente con arte grfico, archivos a sembrar, etc.) local_packages=${simple_cdd_dir}/Estilo/*.deb # Imagen SPLASH para el CD export SPLASHPNG=${simple_cdd_dir}/inicial.png # Nombre del CD export DISKINFO=CDD Inicial Debian GNU/Linux

2.4. Generacin del CDD


Una vez preparado el archivo de conguracin y la informacin del perl, estamos en posicin de generar la imagen del CDD. El proceso de generacin es llevado a cabo por el utilitario

simple-cdd invocado desde la lnea de comando $ simple-cdd --conf simple-cdd.conf

con las opciones adecuadas. En nuestro caso

que realizar la construccin de la imagen. El proceso consta de varias etapas: 1. Se analizan los paquetes incluidos en el perl para determinar su disponibilidad y la de sus dependencias entre los repositorios suministrados.

2. Se utiliza el paquete

debootstrap

de la arquitectura objetivo (en nuestro caso i386)

para determinar los paquetes obligatorios que deben incluirse en el instalador para poder lograr una instalacin base mnima funcional. La lista de paquetes particulares estar en

tmp/deboostrap en un archivo con el nombre de la distribucin y plataforma (etch-i386).


3. Se descargan todos los paquetes necesarios para

debootstrap y para los perles denidos en el CDD. dentro del directorio de trabajo en el subdirectorio tmp/mirror, construyendo
un repositorio parcial solamente con los paquetes a incluir en el CDD. Mientras ms paquetes sean necesarios, ms tiempo tomar analizarlos, ms tiempo tomar descargarlos y ms espacio ocuparn localmente. Note que si se tiene un repositorio con las actualizaciones de seguridad, se descargarn los paquetes ms actualizados.

4. Se prepara una conguracin especca del utilitario

tmp/debian-cd

debian-cd

[9] dentro del directorio

pertinente para la construccin del CDD. La conguracin generada es

suciente para la mayora de los casos, pero si se desea alguna optimizacin particular

debian-cd de manera apropiada. El tipo de conguraciones y cosas que pueden lograrse con debian-cd escapan al alcance de este documento, de modo que debe referirse a la documentacin de debian-cd para ms
basta modicar los archivos de conguracin de detalles. 5. Si todos los paquetes fueron descargados correctamente, no hay ninguna dependencia incompleta y hay espacio en disco suciente, se genera una imagen ISO9660 contentiva del instalador y los paquetes deseados. La imagen ser depositada en el directorio de trabajo dentro del subdirectorio

images.

El proceso de creacin de la imagen produce varias bitcoras de avance dentro de los directorios de trabajo. Si la operacin no puede llevarse a cabo exitsamente, aparecer un mensaje de error acorde; si este mensaje resulta escueto, pueden consultarse las bitcoras de operacin para determinar con precisin la causa del error. Las bitcoras de inters son:

tmp/cd-build/etc/log.add_packages
la copia local hacia la imagen ISO.

que cubre la fase de recopilacin de paquetes desde

tmp/cd-build/etc/log.list2cds.i386

que cubre la fase de inclusin de paquetes y clculo

de las dependencias. Cuando el mensaje de error emitido por la herramienta apunta a paquetes faltantes, se comienza por examinar sta bitcora para determinar si se trata de dependencias fallidas o incorrectamente calculadas. La ltima lnea de esta bitcora reeja la cantidad de paquetes que se incluirn, as como el espacio estimado que ocuparn.

2.5. Probando el CDD.


La imagen generada debe probarse para determinar si cumple con los requerimientos deseados y es en efecto instalable. Para ello es conveniente utilizar el emulador QEmu. 1. Se construye una imagen de disco virtual que servir como disco duro para la mquina emulada. Tpicamente una imagen de 2-4Gb es suciente para las instalaciones, y para ello se ejecuta el comando

$ qemu-img create disk.img 4G


8

2. Se ejecuta el emulador QEmu utilizando la imagen de disco como si fuese su disco duro principal y la imagen ISO9660 como si fuese el CD-ROM. Se indica a QEmu que inicie la emulacin arrancando desde el CD-ROM para as simular la instalacin. Para ello se ejecuta el comando

$ qemu -hda disk.img -cdrom imagen.iso -boot d


3. Se abrir una ventana en la cual se aprecia la emulacin del hardware y el arranque de la imagen de instalacin. En ella pueden seguirse los pasos de instalacin, particionado, instalacin de paquetes, etc. observando si cumple con los requerimientos deseados.

3.

Adaptacin del CDD.


La razn por la cual se desarrolla un CDD es porque se desea imponer una imagen y con-

guraciones especcas de aquellas incluidas en la distribucin estndar Debian GNU/Linux, pero aprovechar todos los paquetes y herramientas disponibles en Debian GNU/Linux. En este sentido, la herramienta lograr la adaptacin.

simple-cdd

ofrece varios mecanismos que pueden aprovecharse para

3.1. Imagen de arranque del CD de instalacin.


Cuando se inicia el CD de instalacin de Debian GNU/Linux, aparece una imagen conteniendo el logo de Debian GNU/Linux. Es posible cambiar esa imagen por cualquier otra, siempre y cuando sea un PNG con paleta de 4 bits con un

mximo

de 14 (catorce) colores con una

resolucin de 640 pixels de ancho y no ms de 400 pixels de alto. El archivo que contiene la imagen debe ubicarse en el directorio de trabajo, y hacer referencia a ella en el archivo

simple-cdd.conf

en la variable de ambiente

SPLASHPNG.

3.2. Seleccin de Paquetes.


Los paquetes mnimos para la instalacin son seleccionados automticamente en virtud del uso de

debootstrap

y por razones obvias ninguno de esos paquetes puede ser removido. De

manera que a falta de un perl, el CD de instalacin contendr lo mnimo indispensable para que el sistema instalado sea til y permita instalar manualmente el resto de los paquetes que se desee. Pueden agregarse tantos paquetes como se desee dentro de los perles para constituir la seleccin automtica de paquetes a instalar ante la seleccin de cada perl. En el archivo de conguracin

simple-cdd.conf se utiliza la directiva profiles=perfil1 perfil2 perfil3

para indicar los perles que deben incluirse en la imagen. Durante la instalacin se le presentar al usuario una lista de todos los perles contenidos en el disco, dndole la oportunidad de seleccionar uno o ms de ellos. Se combinarn los paquetes de todos los perles seleccionados durante la instalacin, de manera que es posible tener un mismo paquete en ms de un perl. Tambin es posible forzar la instalacin de uno o ms perles lidad se utiliza la directiva

sin necesidad que el usuario

los seleccione, automatizando an ms el proceso de instalacin. Para aprovechar esta funciona-

simple-cdd.conf,

auto_profiles=perfil1 perfil2

en el archivo de conguracin

cuyo resultado es instalar los perles indicados automticamente.

En la lista de paquetes

no

se pueden agregar paquetes

linux-image-*.

El instalador ya

tiene paquetes adecuados de kernel para instalar y lo har automticamente. La imagen de instalacin se crear con el kernel genrico para la arquitectura; en el caso de la arquitectura i386, se utilizar el kernel

linux-image-2.6-486,

que opera por igual en cualquier procesa-

dor Intel o AMD sin optimizaciones especiales. Si se preere incluir uno o ms paquetes con imgenes de kernel optimizadas para una o ms arquitecturas superiores, deben indicarse a

simple-cdd en la lnea de comandos opcin --kernel-packages.

de construccin de la imagen de instalacin utilizando la

Una manera de construir la lista de paquetes es seleccionarlos uno a uno a partir de una mquina en la cual se ha instalado todo lo que se necesita. Esto es, se instala un sistema modelo, y luego se extrae la lista de paquetes instalados aprovechando el comando los paquetes correspondientes al kernel con un comando similar a

dpkg,

pero ltrando

$ dpkg --get-selections | grep -v linux-image | cut -f1


Otra manera de construir la lista es utilizar alguno de los Tasks denidos en Debian como punto de partida y completarlo. Con el comando

$ tasksel --list-tasks
se muestran todos los Tasks denidos en Debian, mientras que el comando

$ tasksel --task-packages desktop


muestra los paquetes que conforman el Task

Desktop

tal como lo dene Debian. Esa lista

de paquetes podra utilizarse como punto de partida para crear un perl.

3.3. Conguracin Automtica.


Una cantidad importante de paquetes Debian reciben su conguracin a travs de la base de datos

debconf.

Esta contiene un listado de preguntas de conguracin, adems de sus valores

posibles y seleccionados. Cuando se instala el paquete, las preguntas son presentadas al usuario para que las conteste apropiadamente. Algunas preguntas pueden obviarse, como por ejemplo si se desea aceptar la licencia de Java, o en cul interface activar DHCP; pero otras son crticas y no pueden dejar de ser contestadas como por ejmplo el tipo de teclado de la mquina o el nombre del usuario a crear. Cuando se crea un CDD es posible suministrar un archivo con las respuestas por defecto y las preguntas que an deben ser formuladas, de manera que al efectuar la instalacin la cantidad de informacin solicitada al usuario sea mnima.

3.3.1. Sembrando Respuestas para el Instalador.


El Instalador Debian cuenta con una amplia gama de opciones que pueden ser sembradas de manera automtica para simplicar el proceso de instalacin [10]. Evidentemente, mientras menos preguntas se formulen resultar ms fcil para el usuario, pero menos exible para el experto. En principio podra automatizarse toda la instalacin salvo las preguntas relacionadas con la identidad del usuario y el nombre de la mquina. La siguiente seleccin muestra un ejemplo mnimo de conguracin que podra estar includo en el archivo

inicial.preseed:

d-i debian-installer/locale string es_VE.UTF-8 d-i time/zone select America/Caracas


10

d-i d-i d-i d-i d-i d-i d-i d-i d-i d-i

clock-setup/utc boolean true popularity-contest/participate boolean false grub-installer/only_debian boolean true grub-installer/with_other_os boolean true apt-setup/non-free boolean true apt-setup/contrib boolean true netcfg/hostname string ejemplo netcfg/choose_interface select auto netcfg/dhcp_failed note netcfg/dhcp_options select Configure network manually

Con esta conguracin se lograra que el instalador inicie automticamente en idioma espaol, asumiendo que el pas es Venezuela y congurando el reloj de la mquina en hora UTC. Tiene el efecto adicional que la instalacin de paquetes incluir la seccin

contrib

non-free

de

los repositorios, con lo que ser posible instalar controladores privativos y otros paquetes que dependen de contenido que no est en los repositorios Debian (fonts de Microsoft, plugins de Flash, plugin de Java). Por ltimo, la mquina ser nombrada ejemplo, intentar congurar automticamente la red usando DHCP sobre la primera interfaz que se detecte y en caso de no poder hacerlo lo noticar. Quedan abiertas las preguntas sobre el nombre de usuario y el esquema de particionamiento. Esta ltima tambin puede ser preestablecida como lo explica la documentacin, pero es preferible dejar el dilogo actual que ofrece la opcin de particionamiento automtico; es importante notar que si el idioma de instalacin es diferente al ingls (como es nuestro caso) en la siembra de la pregunta debe utilizarse el nombre de la receta de particionamiento en el idioma de la instalacin. As, si se quiere utilizar la receta que separa la particin adecuada sera

/home del resto, la siembra

d-i partman-auto/choose_recipe select Separar la particin /home


Una conguracin interesante es la de deshabilitar el usuario archivo de la administracin. Para lograr eso, basta con que el perl incluya el paquete

preseed

root y activar el uso de sudo para sudo y que en el

se incluya

passwd passwd/root-login boolean false


esto tiene el efecto de deshabilitar el superusuario (se le coloca una clave imposible) y congurar

sudo

para que el usuario regular pueda realizar las labores administrativas con su propia clave.

3.3.2. Sembrando Respuestas para los Paquetes.


Si dentro del perl se selecciona algn paquete que es congurado con

debconf,

es natural

querer automatizar las respuestas a las preguntas que sean necesarias para hacerlo funcionar con la mnima intervencin del usuario. En este sentido, la manera ms prctica de lograrlo es como sigue: 1. Instalar el paquete en la mquina de pruebas y congurarlo usando

debconf.

11

2. Aprovechar el utilitario

debconf-show para observar las posibles preguntas y las respuestas que estn almacenadas en la base de datos debconf. Por ejemplo, para el paquete sun-java5-jre puede hacerse debconf-show sun-java5-jre
y se obtiene como salida

* shared/accepted-sun-dlj-v1-1: true sun-java5-jre/jcepolicy: sun-java5-jre/stopthread: true shared/error-sun-dlj-v1-1: * shared/present-sun-dlj-v1-1:


donde las lneas marcadas con * indican las preguntas que fueron contestadas durante la conguracin del paquete. La que nos interesa es precisamente la primera que es la de aceptacin de la licencia. 3. Incluir en el archivo preseed del perl la pregunta con la respuesta adecuada asociada al paquete de inters. En el caso del paquetes

sun-java5-jre

agregaramos

sun-java5-jre shared/accepted-sun-dlj-v1-1 boolean true

3.3.3. Conguracin automtica del Perl de los Usuarios.


Durante el proceso de instalacin, una vez terminada la instalacin de paquetes en el sistema destino se procede a crear el usuario con la identidad especicada durante el proceso de instalacin. La creacin de cualquier usuario se hace utilizando el comando vez hace uso del modelo de creacin de usuario existente en basta colocar en

/etc/skel.

adduser

que a su

Si se desea que la conguracin inicial del primer usuario tenga caractersticas particulares,

/etc/skel aquellos componentes necesarios para lograrlo. Para ello es necesario /etc/skel .profile, .vimrc,

crear un paquete Debian a la medida que contenga los archivos y directorios a colocar en

/etc/skel

posiblemente acompaado de un script de ajuste para preferencias del ambiente archivos directorios

de escritorio. Tpicamente se incluyen en un directorio

de conguracin para aplicaciones generales que no son de escritorio, incluso la creacin de

Desktop

dentro del cual colocar los archivos o enlaces que deben aparecer en el

escritorio de los usuarios. Los usuarios creados posteriormente a la instalacin tambin recibirn la conguracin inicial a partir del modelo contenido en

/etc/skel.

3.3.4. Conguracin automtica de apariencia.


La forma porttil y eciente de lograr la conguracin automtica de la apariencia de la instalacin se basa en crear paquetes Debian que incluyan los elementos de arte grco adicionales y hacer que se instalen automticamente. Cada elemento de arte tiene caractersticas particulares y debe ser instalado de manera particular, por lo cual los paquetes Debian a crear tendrn que adecuarse en cada caso. La forma de construir un paquete Debian est fuera del

12

alcance de este documento, siendo necesario estudiar el Debian Policy [11] y la Gua para Mantenedores Novatos [12]. Solamente describiremos la estructura necesaria de los elementos de arte y la estrucura de los paquetes esenciales para la conguracin. Se han diseado dos paquetes originales para la conguracin automtica de la apariencia:

debian-simple-cdd-themes, que genera paquetes individuales conteniendo los elementos


de arte grco para colocarlos en directorios centrales particulares. Todos los objetos de arte grco residen en un subdirectorio particular (grub, del paquetes, y en el directorio

debian

gdm,

etc.) a partir de la raz

estn los archivos de construccin del paquete

siguiendo los estndares del Debian Policy.

debian-simple-cdd, que genera paquetes individuales conteniedo las acciones de conguracin adicionales para habilitar los elementos de arte grco de forma automtica. Cada paquete est contenido en un directorio del mismo nombre, todos ellos dentro del directorio

Estilo

en el rea de trabajo de construccin del CDD. Para construir los paquetes, basta

ubicarse en el directorio raz que los contiene y ejecutar el comando de construccin apropiado

$ cd testcdd/Estilo/debian-simple-cdd-themes $ debian/rules binary


de manera que se generen los mltiples archivos te directorio debe aparecer en la directiva

simple-cdd

.deb en el local_packages

directorio

testcdd/Estilo.

Es-

del archivo de conguracin de

para que sean incluidos en el CDD.

Imagen de Arranque de GRUB


GRUB es el gestor de arranque del sistema y tiene la posibilidad de colocar una imagen de fondo por detrs del men de seleccin de imgenes de arranque. El ltimo paso del proceso de instalacin del CDD es precisamente instalar GRUB en el sector de arranque del disco duro; si para ese momento se ha instalado algn paquete que provea la imagen del men de arranque en el lugar adecuado, entonces quedar instalada. Para poder utilizar una imagen como fondo de GRUB est debe tener una resolucin de 640x480 pixels, tener una paleta de 4 bits con un La imagen se coloca en

debian-cnti-cdd-themes/grub/debian-cnti-splash.xpm antes de construir el paquete debian-cnti-cdd-themes. El paquete ser instalado durante la fase de instalacin del CDD y la imagen se ubicar denitivamente en el directorio /boot/grub. En los sistemas Debian GNU/Linux se dispone del comando update-grub para generar
automticamente los archivos de conguracin de GRUB. En particular el comando verica la existencia del archivo

mximo de 14 colores y estar en formato XPM.

/boot/grub/splash.xpm.gz y lo utiliza como imagen de fondo de GRUB.

Imagen de Entrada en GDM


GDM es el gestor de acceso al escritorio que solicita las credenciales de usuario para permitir el ingreso. La documentacin de GDM [13] describe con lujo de detalles los procedimientos a seguir para crear un

GDM Theme

que puede instalarse en el sistema y que el administrador

puede seleccionar voluntariamente.

13

Se ha creado un

GDM Theme

prototipo con la intencin que sirva como punto de partida

para adaptaciones futuras, posiblemente creando varios. Todos los componentes del tema para GDM se encuentran en el directorio

debian-cnti-cdd-themes/gdm/:

imgenes PNG para los

conos de accin, una imagen PNG para el fondo de pantalla, el archivo XML con la descripcin de la geometra del tema y un archivo .desktop para describir el tema a Gnome.

Imagen para Splash y Fondo de Escritorio


La imagen para Fondo de Escritorio es independiente del entorno de escritorio en uso, sin embargo en la CDD se utiliza Gnome como ambiente de escritorio por defecto, de manera que no solamente es necesario instalar la imagen en el directorio apropiado, sino que tambin debe congurarse Gnome para utilizarla automticamente para cualquier La imagen de para cualquier

splash es especca de Gnome y al igual que con la imagen anterior, es necesario splash
se colocan en el directo-

nueva sesin de usuario.

ubicarla en el directorio apropiado y luego congurar Gnome para utilizarla automticamente

nueva sesin de usuario.

Las imagenes para el fondo de pantalla de escritorio y

rio debian-cnti-cdd-themes/images/debian-cnti-cdd.png la primera, y en el directorio debian-cnti-cdd-themes/images/splash/splash.png respectivamente, antes de construir el paquete debian-cnti-cdd-themes. La primera debe tener una resolucin mnima de 1280x1024 mientras que la segunda debe tener una resolucin de 400x300; en ambos casos, se tiene total libertad en la cantidad de colores a utilizar.

Conguracin de las Preferencias


a

cada usuario.

Las preferencias de Gnome se almacenan en la base de datos GConf que son particulares Cuando un usuario ingresa por primera vez a Gnome, se construye una con-

guracin inicial basada en los valores por omisin del sistema. Si se modica la conguracin por omisin del sistema de manera adecuada, entonces cualquier usuario nuevo que ingrese a Gnome por primera vez recibir la conguracin automticamente. Note que esto no afecta las conguraciones de usuarios que ya hayan sido creados. La base de datos de preferencias de Gnome se manipula con el comando

claves

gconftool-2,

el cual es capaz de modicar por lotes las

dentro de la base de datos. El utilitario Conguration Editor de Gnome permite explorar

las claves con una interfaz grca de manera que pueda extraerse la informacin para luego aplicarla con

gconftool-2

de forma automtica.

Las preferencias de GDM se encuentran en el archivo editado para escoger el tema adecuado.

/etc/gdm/gdm.conf,

el cual debe ser

Para lograr que el CDD imponga este conjunto de conguraciones es necesario que luego de instalados los paquetes con imagen grca, se ejecute un script que aplique las conguraciones. El paquete

debian-simple-cdd contiene el script de instalacin para las preferencias de Gnome,

el tema de GDM y la imagen de GRUB.

3.3.5. Receta de Particionamiento


El Instalador Debian ofrece un mecanismo mediante el cual las labores de particionamiento y asignacin de sistemas de archivo pueden automatizarse tanto como se desee. En principio, podra congurarse de tal forma que el usuario no tenga ninguna intervencin en el proceso,

14

y la instalacin disponga del disco automticamente segn los parmetros que el creador de la CDD disponga. La ventaja de establecer una receta de particionamiento est precisamente en liberar al usuario de la posible complejidad del proceso y de tomar decisiones sobre un tema que no domina. La desventaja de establecer una receta de particionamiento est en que se resta exibilidad al usuario avanzado que quiere controlar con precisin la disposicin de la informacin en el disco. Si uno

no establece ninguna receta de particionamiento, la herramienta simple-cdd genera


/ y /home. Sea cual sea la receta deseada, la siembra debe

una receta para crear una sola particin. En principio es recomendable establecer alguna receta de particionamiento ms razonable que esa, y en secciones anteriores se describi como sembrar la receta para separar las particiones dejar que a gusto. Si uno hacerse utilizando su nombre en el idioma del CDD. Al establecer una receta personalizada o

simple-cdd genere la receta de particin nica, se pierde la funcionalidad de particio-

namiento asistido que ofrece el Instalador Debian y en consecuencia la posibilidad de particionar

no

quiere una receta de particionamiento y desea que el asistente de particio-

namiento del Instalador Debian opere de la manera tradicional, debe modicar el archivo

/usr/share/simple-cdd/profiles/default.preseed y colocar en comentarios las siembras de partman/choose_recipe. Este archivo de siembra es agregado automticamente a cualquier
CDD, y al eliminar la siembra de recetas de particionamiento se habilitar el uso del asistente de particionamiento estndar del Instalador Debian.

3.3.6. Conguraciones extra.


Algunos paquetes, a pesar de utilizar debconf, requieren actividades de conguracin adicional para operar correctamente. Estas actividades de conguracin pueden involucrar la copia de archivos o la ejecucin de comandos arbitrarios. Justo al terminar la instalacin de paquetes del perl Este

simple, simple.postinst.

el instalador CDD ejecutar el

script

de post-instalacin denido en

script

de shell puede incluir todas las actividades de conguracin necesarias. Por

ejemplo, cuando se instala Xorg es posible congurar automticamente el teclado en base al modelo de teclado que el usuario escogi durante la instalacin, y tambin es posible suministrar una lista de resoluciones que uno quiere activar automticamente si la tarjeta de video es capaz. Desafortunadamente, para que esas conguraciones sean aplicadas es necesario que el sistema base ya est instalado, y como el paquete Xorg es instalado se siembren respuestas en archivo

simple.preseed

simultneamente por mucho que

ests no se aplicarn.

Otra conguracin interesante es la de colocar orgenes de paquetes preestablecidos en el

/etc/apt/sources.list

de la instalacin.

La solucin es realizar las actividades en el

script

de post-instalacin. Ese script es invocado

automticamente al terminar la instalacin, y su ejecucin se realiza en un

chroot

construido

sobre la instalacin en el disco duro, de manera que pueden utilizarse comandos y nombres de archivo absolutos, haciendo referencia de ese modo a los contenidos de la instalacin.

#!/bin/sh while read line do echo $line | debconf-set-selections done < <SEEDS
15

xserver-xorg xserver-xorg/autodetect_monitor boolean true xserver-xorg xserver-xorg/autodetect_keyboard boolean true xserver-xorg xserver-xorg/config/display/modes multiselect 1280x1024, 1280x800, 1024x768 SEEDS dpkg-reconfigure -fnoninteractive xserver-xorg echo deb http://www.debian-multimedia.org/ etch main > >/etc/apt/sources.list
Referencias
[1]

anonftpsync

Script

de shell que facilita la construccin de mirrors completos o parciales Debian. Est

disponible en

http://www.debian.org/mirror/anonftpsync

[2] Dimensiones de un mirror Debian.

http://www.debian.org/mirror/size
[3] Lista de Mirrors Ociales Debian.

http://www.debian.org/mirror/official
[4] Actualizaciones de Seguridad del Proyecto Debian.

http://www.debian.org/security/
[5] Paquetes Multimedia para Debian GNU/Linux provistos por Christian Marillat.

http://www.debian-multimedia.org/
[6]

simple-cdd.
Herramientas utilitarias para facilitar la creacin de manual en

Custom Debian Distributions

provista

por el Proyecto Debian en la distribucin unstable a.k.a. Sid y disponible para su descarga

http://packages.debian.org/sid/simple-cdd

[7]

Debian Installer

http://wiki.debian.org/DebianInstaller
[8]

debconf-set-selections
Utilitario de lnea de comandos exclusivo de Debian GNU/Linux que permite insertar valores por defecto en la base de datos de conguracin de debconf. Los detalles de formato pueden encontrarse en su pgina de manual, legible con

man debconf-set-selections.

[9]

debian-cd
Herramienta para construir discos de instalacin (CD o DVD) de la distribucin Debian GNU/Linux disponible en

http://packages.debian.org/sid/debian-cd.

La documen-

tacin se incluye al instalar el paquete homnimo. [10]

Preseeding
Es la tcnica que permite suministrar respuestas por omisin a los diferentes componentes del Instalador Debian para automatizar el proceso. La documentacin detallada de referencia se encuentra en

http://www.debian.org/releases/stable/i386/apb.html.en
16

[11]

Debian Policy
Gua que describe la estructura y contenidos de los repositorios y sistemas Debian, as como las especicaciones y condiciones que deben cumplir los paquetes para ser adecuados. Se encuentra en el paquete

http://www.debian.org/doc/debian-policy/, pero tambin se instala con debian-policy.

[12]

Debian New Maintainer's Guide


Gua que describe la forma en que se construye un paquete Debian, orientado a desarrolladores con poca experiencia que necesitan iniciarse en la tarea de mantener paquetes Debian. Se encuentra en el paquete

http://www.debian.org/doc/maint-guide/, pero tambin se instala con maint-guide o maint-guide-es.

[13]

Graphical Greeter Theme


Est seccin de la documentacin de GDM describe los elementos necesarios para construir un tema visual a la medida. Se encuentra en

x1259.html

http://www.jirka.org/gdm-documentation/

17

También podría gustarte