Construyendo una Distribución Debian Adaptada

Ernesto Hernández-Novich Marzo 6, 2008

Resumen
El presente documento es una guía general en el establecimiento de una infraestructura de desarrollo que permita producir una Distribución 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 investigación y desarrollo para la construcción de la Distribución GNU/Linux del CNTI, en el marco del proyecto Debian CDD CNTI. Agradecemos enviar correcciones y sugerencias al autor, a través de la dirección de correo

<emhn@usb.ve>.

1.

Ambiente de Desarrollo

1.1. Réplica (mirror ) del Repositorio Debian
Puesto que la construcción de una CDD aprovecha los mismos paquetes provistos por distribución Debian GNU/Linux el proceso de construcción podría llevarse a cabo utilizando los repositorios y réplicas ociales del Proyecto Debian, sin embargo es conveniente contar con una réplica local del repositorio para agilizar la descarga de paquetes. La réplica local a utilizar debe ser una réplica es, debe incluir la lista de paquetes y el

pool

completa para la arquitectura de interés, esto

completo de paquetes asociados a la distribución

objetivo, además de los componentes del instalador Debian. La mayor parte de los inconvenientes y fallas durante la construcción de la imagen están relacionadas con el uso de una réplica parcial (

pool

incompleto) o incompleta (sin componentes de instalador y documentación).

1.1.1. Construcción de la réplica
La manera simple y expedita de construir una réplica con las características descritas consiste en utilizar la herramienta herramienta denominada

anonftpsync [1] provista por el proyecto Debian. Existe otra debmirror que también permite crear réplicas parciales, sin embargo

tiene inconvenientes para replicar los elementos del instalador Debian, por tanto es preferible evitarla. El proceso de construcción 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 dirección IP correspondiente.

debian.ejemplo.com,

siendo

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

1

debian. rsync. utilice el comando root y grupo root. El script tiene comentarios que explican con detalle todas las opciones. sino también para el mantenimiento diario de la réplica.org RSYNC_DIR=debian/ MAILTO=mirroradmin@ejemplo.2. Para que el mantenimiento de la réplica sea automático. indicado en la variable El servidor remoto a partir del cual tomar la copia utilizando la variable TO.com/debian y acceder al directorio raíz de la réplica.log aparecerán los resultados del trabajo de sincronización paulatinamente. El script pues utiliza anonftpsync está diseñado no sólo para la creación inicial.El sistema ha de contar con suciente espacio en disco [2] para la construcción de la réplica. de manera que puede colocarse una línea similar a 30 1 * * * root /usr/local/sbin/anonftpsync > /dev/null 2>&1 con lo cual se logra que la actualización diaria comience a la 1:30 de todos los días. Como mínimo es necesario especicar: • • El directorio en el cual se construirá la réplica. Es conveniente hacer no menos de una sincronización diaria. rsync. La dirección de correo del usuario responsable del mirror. Puede usarse cualquiera de los servidores principales [3] del proyecto Debian GNU/Linux. de manera que las operaciones de sincronización envíen un reporte de éxito o fallo automáticamente. y el comando chmod chown para que pertenezca al usuario para que sólo el dueño pueda ejecutarlo. incluya la ejecución del comando en el archivo del sistema. en el archivo ejecute el comando tomará un tiempo /var/log/debian-mirror. 1.ch. rsync para descargar las diferencias interdiarias. indicada en la variable MAILTO. rsync (aptitude install rsync).1. • • En el servidor remoto debe existir un directorio raíz sobre el cual operar el indicado en la variable RSYNC_DIR. Instale Apache2 (aptitude install apache2) y asegúrese que cualquier cliente Web puede visitar http://debian. indicado en RSYNC_HOST. Si se ejecuta el comando manualmente.ejemplo. Note que la primera vez que considerable en culminar su trabajo. Así. para hacer una réplica completa de todas las distribuciones y todas las arquitecturas basta utilizar algo similar a: TO=/var/www/debian RSYNC_HOST=ftp.com Una vez modicado el script. anonftpsync en el directorio /usr/local/sbin y modifíquelo para ajus- Instale Coloque el script tarse a sus necesidades particulares de replicación. 2 . Mantenimiento de la réplica Para que la réplica sea útil es necesario mantenerla actualizada. El espacio asignado para la réplica debe estar en la partición sobre la cual resida /var/www/debian. eliminar los archivos a medida que /etc/crontab se eliminan del repositorio principal y ajustar las listas de paquetes.

org DIST="etch. En particular.1.debian-multimedia.sid" ARCH="i386. pero solamente para las arquitecturas i386 y amd64. disponibles en el servidor a través de los URL y http://debian. aplicando de forma iterativa el proceso descrito más adelante. Réplicas de otros repositorios Para ahorrar ancho de banda y facilitar el acceso a paquetes de interés que no están en el repositorio principal del Proyecto Debian.1.' \ --rsync-batch=500000 \ --host=$HOST \ --dist=$DIST \ --arch=$ARCH \ --section=$SECT \ --cleanup \ --source \ --getcontents \ --ignore-missing-release En el resto del documento. para construir una réplica de los paquetes para extensiones multimedia provistos por Christian Marillat.amd64" SECT="main" $DM /var/www/debian-multimedia/ \ --progress \ --method=http \ --root='. puede utilizarse un script similar a #!/bin/bash DM=/usr/bin/debmirror HOST=www. Por ejemplo.3. El proceso de construcción de las imágenes demanda una cantidad importante de espacio en disco.ejemplo.lenny. Es necesario un equipo en el cual llevar a cabo la construcción de las imágenes de instalación de los CDD.com/debian-multimedia respectivamente.com/debian-security http://debian. así como posiblemente la ejecución de máquinas virtuales para vericar la funcionalidad de las distribuciones generadas. es conveniente crear réplicas locales en otras ubicaciones. Estación de Trabajo de Adaptación. sino también los paquetes y elementos de conguración intermedios que son necesarios durante el proceso. 3 .2. asumiremos que existen réplicas par ambos repositorios adicionales. no solamente para contener las múltiples imagenes de CD-ROM y posiblemente DVD generadas durante el proceso.ejemplo. 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]. 1. En estos casos. puede repetirse el proceso de replicación pero utilizando diferentes directorios dentro del servidor.

syslinux. RAID por software.2. . Suciente memoria RAM para poder ejecutar tanto el ambiente gráco en el cual trabaja el usuario adaptador como sostener las máquinas virtuales para emulación durante las pruebas. 1A la fecha de escritura de este documento. Puede utilizarse RAID por hardware. etc.3.1 El paquese descarga usando el navegador y una vez en el escritorio puede instalarse bien sea con la herramienta gráca gdebi o bien desde la línea de comandos utilizando dpkg. Lo mínimo para ser productivo es contar con 40Gb de disco duro. 1.) se utiliza linux-image-2. Una unidad CD-R/CD-RW para poder preparar las imágenes físicas con las ISOs generadas durante el proceso de adaptación. apt-utils.6-686. más eciente será el proceso de generación de las imágenes así como su prueba por simulación. la réplica local de los paquetes que son utilizados para la confección del CDD y los archivos de conguración que la denen. Mientras más rápido sea el procesador. Asumiendo una máquina con arquitectura i386 (Pentium III.deb manualmente la última versión disponible del paquete debian-cd[9]. wget. Pentium M. python. las imágenes ISO que se generen. LVM o particiones crudas. Instalación de Referencia. Requerimientos.1. Es recomendable que la estación de trabajo para las tareas de adaptación y producción de CDD cumpla con al menos las siguientes características mínimas de instalación: Debian GNU/Linux Etch con las últimas actualizaciones de seguridad disponibles con el ambiente de escritorio tradicional y con el kernel adecuado para la máquina antriona. netpbm. Xeon.0.4GHz sería lo mínimo para ser productivo.2. Lo mínimo para ser productivo es contar con 512Mb de RAM.2. Es recomendable que la estación de trabajo para las tareas de adaptación y producción de los CDD tenga: Procesador de 32 bits de última generación. lsb-release de la versión Debian Etch usando aptitude o synaptic. reprepro. Suciente espacio en disco para contener la instalación del sistema con su ambiente de escritorio. Un Pentium M de 1. Pentium 4. la versión más reciente de debian-cd es la 3.1. 4 . 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 y rsync.

Adicionalmente puede establecer la ejecución de scripts desarrollados a la medida. En cada iteración. De ese modo es posible contar con una CDD que incluya variantes de instalación a seleccionar de manera simple y directa. 3 La 2A 5 . El proceso de desarrollo del CDD es iterativo: se inicia con una conguración básica conteniendo un único perl simple.6. el cual va siendo enriquecido agregando más paquetes. y utilizará la línea de comandos para preparar el area de trabajo la fecha de escritura de este documento. debootstrap. El desarrollador del CDD puede construir varias listas y así denir perles ( proles ) que permiten al usuario seleccionar durante la instalación el conjunto de paquetes. por tanto recomienda instalar: • • El paquete qemu. conguraciones y scripts deseados.6-686. se genera un ISO. 2. 3 El paquete con los módulos del kernel apropiados para acelerar el funcionamiento de QEmu en la máquina antriona. Se repite el proceso bien sea agregando o eliminando paquetes del perl. y para nuestro ejemplo sería necesario instalar kqemu-modules-2.Instalar quete . etc. simple-cdd consiste en utilizar las herrareprepro. interés. es posible vericar su funcionalidad utilizando algún emulador que permita construir máquinas virtuales con capacidades grácas.3. o construyendo un perl adicional. cada una de ellas requerirá un directorio de trabajo. Procedimiento de Construcción La metodología de creación de CDD utilizando mientas existentes en Debian (debian-cd. debconf. gdebi o bien desde la línea de comandos utilizando Una vez creadas las imágenes ISO con las CDD.deb manualmente la última versión disponible del paquete simple-cdd [6]. Los módulos dependen del kernel particular instalado.1. Area de Trabajo El desarrollo del CDD queda enteramente contenido en un directorio. se verica su funcionalidad en la máquina virtual y posiblemente en una máquina real. más conguraciones y más scripts de conguración. para instalar o congurar cosas que no estén empaquetadas o que no aprovechen preseeding ) a aplicar sobre aquellos componentes que debconf. El desarrollador del CDD ingresará en el sistema de desarrollo con su usuario habitual de trabajo (que no sea root). Consulte la documentación incluida con el paquete qemu para determinar las maneras en las cuales puede congurarse más efectivamente. la versión más reciente de simple-cdd es la 0. 2.2 El pase descarga usando el navegador y una vez en el escritorio puede instalarse bien sea con la herramienta gráca dpkg. para tener el emulador y todas sus dependencias. El autor utiliza QEmu para ese propósito. de modo que si se desea construir varias CDD diferentes.) para cons- truir una imagen de instalación 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 automáticas (debconf sea menester (paquetes o diálogos de instalación). conguración detallada de QEmu escapa al alcance de este documento.

$ mkdir profiles Este directorio contendrá todos los archivos necesarios para denir los perles. de manera que pueda decidir cuales perles seleccionar. Creando el perl inicial Dentro del directorio de trabajo. openoffice. 2. el cual puede 6 .packages Este archivo de texto es obligatorio en la denición del perl y contie- ne un nombre de paquete Debian por cada línea. sin necesidad de enumerarlos. Los paquetes que se indiquen en este archivo serán instalados y congurados automáticamente durante el proceso de instalación del CDD. es necesario crear un archivo de conguración para la creación de la imagen. inicial. El paquete simple-cdd incluye un archivo de conguración de ejemplo. inicial.org. Lo que se escriba en este archivo será utilizado como descripción informativa para el usuario durante el proceso de instalación. Las líneas en blanco y las líneas que comienzan con # se ignoran. La intención de este script es realizar las conguraciones manuales necesarias para aquellos paquetes que no aprovechan debconf. 2. No es necesario incluir las dependencias de los paquetes de interés pues la herramienta de construcción es capaz de determinarlas e incluirlas automáticamente.2. Archivo de conguración.description Este archivo de texto es opcional y contiene una sola línea de texto con una descripción resumida del propósito del perl. es necesario crear: inicial. inicial. de manera que para crear el perl de nombre inicial.postinst Este archivo de texto es opcional y contiene un script de shell que será ejecutado automáticamente una vez que se hayan instalado todos los paquetes indicados en el perl. El formato utilitario debconf-set-selections [8].preseed omisión (el preseed ) Este archivo de texto es opcional y contiene las selecciones a utilizar por del archivo es para las preguntas de conguración que presente el Instalador De- bian o cualquier paquete que utilice idéntico al requerido por el debconf para congurarse. completamente documentado. La herramienta identica los perles según los nombres de los archivos que encuentra.$ mkdir testcdd $ cd testcdd El directorio estará inicialmente vacío y es responsabilidad del desarrollador del CDD crear el perl mínimo de trabajo. se construye a su vez otro directorio que debe tener el nombre profiles.org y se instalarán todos los paquetes de los cuales dependa openoffice.3. así como el archivo de conguración para la herramienta simple-cdd. así que pueden utilizarse como separadores o para basta agregar la línea documentar grupos de paquetes y las razones por las cuales se incluyen. Una vez denidos los archivos para uno o más perles dentro del directorio proles.

deb # Imagen SPLASH para el CD export SPLASHPNG=${simple_cdd_dir}/inicial. etc. El proceso consta de varias etapas: 1.ejemplo.) local_packages=${simple_cdd_dir}/Estilo/*. 7 . Se analizan los paquetes incluidos en el perl para determinar su disponibilidad y la de sus dependencias entre los repositorios suministrados.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 # País por omisión country=Venezuela # Mirror principal del cual tomar paquetes # y componentes del instalador. server=debian.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.png # Nombre del CD export DISKINFO=CDD Inicial Debian GNU/Linux 2. Generación del CDD Una vez preparado el archivo de conguración y la información del perl.ejemplo.4. archivos a sembrar. /usr/share/doc/simple-cdd/examples simple-cdd. En nuestro caso que realizará la construcción de la imagen. estamos en posición de generar la imagen del CDD.com/debian-security # Mirror extra con paquetes extra y componentes.com/debian-multimedia mirror_components_extra=main # Directorio local con paquetes . El proceso de generación es llevado a cabo por el utilitario simple-cdd invocado desde la línea de comando $ simple-cdd --conf simple-cdd.encontrarse en el directorio partida.deb extra a instalar # (posiblemente con arte gráfico. debian_mirror_extra=http://debian.conf con las opciones adecuadas.ejemplo.

El proceso de creación de la imagen produce varias bitácoras de avance dentro de los directorios de trabajo. pueden consultarse las bitácoras de operación para determinar con precisión la causa del error. Se construye una imagen de disco virtual que servirá como disco duro para la máquina emulada. se genera una imagen ISO9660 contentiva del instalador y los paquetes deseados. que cubre la fase de recopilación de paquetes desde tmp/cd-build/etc/log. Cuando el mensaje de error emitido por la herramienta apunta a paquetes faltantes. así como el espacio estimado que ocuparán. La conguración generada es suciente para la mayoría de los casos. La lista de paquetes particulares estará en tmp/deboostrap en un archivo con el nombre de la distribución y plataforma (etch-i386). Probando el CDD. La imagen será depositada en el directorio de trabajo dentro del subdirectorio images. 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 instalación base mínima funcional. aparecerá un mensaje de error acorde. construyendo un repositorio parcial solamente con los paquetes a incluir en el CDD.i386 que cubre la fase de inclusión de paquetes y cálculo de las dependencias. y para ello se ejecuta el comando $ qemu-img create disk. La imagen generada debe probarse para determinar si cumple con los requerimientos deseados y es en efecto instalable. Se descargan todos los paquetes necesarios para debootstrap y para los perles denidos en el CDD. La última línea de esta bitácora reeja la cantidad de paquetes que se incluirán. se comienza por examinar ésta bitácora para determinar si se trata de dependencias fallidas o incorrectamente calculadas.5. dentro del directorio de trabajo en el subdirectorio tmp/mirror. no hay ninguna dependencia incompleta y hay espacio en disco suciente. si este mensaje resulta escueto. 5. 2.2. Mientras más paquetes sean necesarios.list2cds. 3. de modo que debe referirse a la documentación de debian-cd para más basta modicar los archivos de conguración de detalles. Para ello es conveniente utilizar el emulador QEmu. se descargarán los paquetes más actualizados. Las bitácoras de interés son: tmp/cd-build/etc/log. más tiempo tomará descargarlos y más espacio ocuparán localmente. pero si se desea alguna optimización particular debian-cd de manera apropiada. El tipo de conguraciones y cosas que pueden lograrse con debian-cd escapan al alcance de este documento. más tiempo tomará analizarlos. Si la operación no puede llevarse a cabo exitósamente. 4.add_packages la copia local hacia la imagen ISO. 1. Si todos los paquetes fueron descargados correctamente. Típicamente una imagen de 2-4Gb es suciente para las instalaciones.img 4G 8 . Note que si se tiene un repositorio con las actualizaciones de seguridad. Se prepara una conguración especíca del utilitario tmp/debian-cd debian-cd [9] dentro del directorio pertinente para la construcción del CDD.

dándole la oportunidad de seleccionar uno o más de ellos. En ella pueden seguirse los pasos de instalación. Durante la instalación se le presentará al usuario una lista de todos los perles contenidos en el disco. la herramienta lograr la adaptación. Se combinarán los paquetes de todos los perles seleccionados durante la instalación. simple-cdd ofrece varios mecanismos que pueden aprovecharse para 3. Se indica a QEmu que inicie la emulación arrancando desde el CD-ROM para así simular la instalación. siempre y cuando sea un PNG con paleta de 4 bits con un máximo de 14 (catorce) colores con una resolución de 640 pixels de ancho y no más de 400 pixels de alto. aparece una imagen conteniendo el logo de Debian GNU/Linux.img -cdrom imagen.iso -boot d 3.conf en la variable de ambiente SPLASHPNG. instalación de paquetes. particionado. El archivo que contiene la imagen debe ubicarse en el directorio de trabajo. el CD de instalación contendrá lo mínimo indispensable para que el sistema instalado sea útil y permita instalar manualmente el resto de los paquetes que se desee. pero aprovechar todos los paquetes y herramientas disponibles en Debian GNU/Linux. Adaptación del CDD. Selección de Paquetes. La razón por la cual se desarrolla un CDD es porque se desea imponer una imagen y con- guraciones especícas de aquellas incluidas en la distribución estándar Debian GNU/Linux.2. 3. etc. 9 . También es posible forzar la instalación de uno o más perles lidad se utiliza la directiva sin necesidad que el usuario los seleccione. y hacer referencia a ella en el archivo simple-cdd. Es posible cambiar esa imagen por cualquier otra. Para ello se ejecuta el comando $ qemu -hda disk. automatizando aún más el proceso de instalación. Los paquetes mínimos para la instalación son seleccionados automáticamente en virtud del uso de debootstrap y por razones obvias ninguno de esos paquetes puede ser removido.conf.2. De manera que a falta de un perl. de manera que es posible tener un mismo paquete en más de un perl. Para aprovechar esta funciona- simple-cdd. Pueden agregarse tantos paquetes como se desee dentro de los perles para constituir la selección automática de paquetes a instalar ante la selección de cada perl.1. En el archivo de conguración simple-cdd. 3. Imagen de arranque del CD de instalación. 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. auto_profiles=perfil1 perfil2 en el archivo de conguración cuyo resultado es instalar los perles indicados automáticamente. En este sentido. Cuando se inicia el CD de instalación de Debian GNU/Linux.conf se utiliza la directiva profiles=perfil1 perfil2 perfil3 para indicar los perles que deben incluirse en la imagen. Se abrirá una ventana en la cual se aprecia la emulación del hardware y el arranque de la imagen de instalación. observando si cumple con los requerimientos deseados.

Una cantidad importante de paquetes Debian reciben su conguración a través de la base de datos debconf. Esa lista de paquetes podría utilizarse como punto de partida para crear un perl. Si se preere incluir uno o más paquetes con imágenes de kernel optimizadas para una o más arquitecturas superiores. En principio podría automatizarse toda la instalación salvo las preguntas relacionadas con la identidad del usuario y el nombre de la máquina. La siguiente selección muestra un ejemplo mínimo de conguración que podría estar incluído en el archivo inicial. las preguntas son presentadas al usuario para que las conteste apropiadamente. Algunas preguntas pueden obviarse. Conguración Automática. como por ejemplo si se desea aceptar la licencia de Java. de manera que al efectuar la instalación la cantidad de información solicitada al usuario sea mínima. mientras menos preguntas se formulen resultará más fácil para el usuario. además de sus valores posibles y seleccionados.UTF-8 d-i time/zone select America/Caracas 10 . pero menos exible para el experto.1. se utilizará el kernel linux-image-2. y luego se extrae la lista de paquetes instalados aprovechando el comando los paquetes correspondientes al kernel con un comando similar a dpkg. Sembrando Respuestas para el Instalador. Cuando se instala el paquete. La imagen de instalación se creará con el kernel genérico para la arquitectura. El Instalador Debian cuenta con una amplia gama de opciones que pueden ser sembradas de manera automática para simplicar el proceso de instalación [10]. Cuando se crea un CDD es posible suministrar un archivo con las respuestas por defecto y las preguntas que aún deben ser formuladas.En la lista de paquetes no se pueden agregar paquetes linux-image-*. Esto es. de construcción de la imagen de instalación utilizando la Una manera de construir la lista de paquetes es seleccionarlos uno a uno a partir de una máquina en la cual se ha instalado todo lo que se necesita. 3.3. 3.preseed: d-i debian-installer/locale string es_VE. pero otras son críticas y no pueden dejar de ser contestadas como por ejmplo el tipo de teclado de la máquina o el nombre del usuario a crear. Con el comando $ tasksel --list-tasks se muestran todos los Tasks denidos en Debian.6-486. Evidentemente. mientras que el comando $ tasksel --task-packages desktop muestra los paquetes que conforman el Task Desktop tal como lo dene Debian. se instala un sistema modelo. deben indicarse a simple-cdd en la línea de comandos opción --kernel-packages. Esta contiene un listado de preguntas de conguración. en el caso de la arquitectura i386.3. que opera por igual en cualquier procesa- dor Intel o AMD sin optimizaciones especiales. 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. El instalador ya tiene paquetes adecuados de kernel para instalar y lo hará automáticamente. o en cuál interface activar DHCP.

la siembra d-i partman-auto/choose_recipe select Separar la partición /home Una conguración interesante es la de deshabilitar el usuario archivo de la administración. es natural querer automatizar las respuestas a las preguntas que sean necesarias para hacerlo funcionar con la mínima intervención del usuario. Por último.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 conguración se lograría que el instalador inicie automáticamente en idioma español.3. Para lograr eso.2. Instalar el paquete en la máquina de pruebas y congurarlo usando debconf. 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. Esta última también puede ser preestablecida como lo explica la documentación. la máquina será nombrada ejemplo. intentará congurar automáticamente la red usando DHCP sobre la primera interfaz que se detecte y en caso de no poder hacerlo lo noticará. si se quiere utilizar la receta que separa la partición adecuada sería /home del resto. plugins de Flash. Así. 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. pero es preferible dejar el diálogo actual que ofrece la opción de particionamiento automático. la manera más práctica de lograrlo es como sigue: 1. 3. En este sentido. 11 . Tiene el efecto adicional que la instalación de paquetes incluirá la sección contrib y non-free de los repositorios. Quedan abiertas las preguntas sobre el nombre de usuario y el esquema de particionamiento. Sembrando Respuestas para los Paquetes. es importante notar que si el idioma de instalación es diferente al inglés (como es nuestro caso) en la siembra de la pregunta debe utilizarse el nombre de la receta de particionamiento en el idioma de la instalación. Si dentro del perl se selecciona algún paquete que es congurado con debconf. asumiendo que el país es Venezuela y congurando el reloj de la máquina en hora UTC. plugin de Java).

Conguración automática de apariencia. Cada elemento de arte tiene características particulares y debe ser instalado de manera particular. Incluir en el archivo preseed del perl la pregunta con la respuesta adecuada asociada al paquete de interés. una vez terminada la instalación de paquetes en el sistema destino se procede a crear el usuario con la identidad especicada durante el proceso de instalación. Durante el proceso de instalación.profile. Los usuarios creados posteriormente a la instalación también recibirán la conguración inicial a partir del modelo contenido en /etc/skel.2. /etc/skel aquellos componentes necesarios para lograrlo. Conguración automática del Perl de los Usuarios. Típicamente se incluyen en un directorio de conguración para aplicaciones generales que no son de escritorio. por lo cual los paquetes Debian a crear tendrán que adecuarse en cada caso. crear un paquete Debian a la medida que contenga los archivos y directorios a colocar en /etc/skel posiblemente acompañado de un script de ajuste para preferencias del ambiente archivos directorios de escritorio. La forma portátil y eciente de lograr la conguración automática de la apariencia de la instalación se basa en crear paquetes Debian que incluyan los elementos de arte gráco adicionales y hacer que se instalen automáticamente.3. 3. .3. 3. Por ejemplo. adduser que a su Si se desea que la conguración inicial del primer usuario tenga características particulares. En el caso del paquetes sun-java5-jre agregaríamos sun-java5-jre shared/accepted-sun-dlj-v1-1 boolean true 3.vimrc. incluso la creación de Desktop dentro del cual colocar los archivos o enlaces que deben aparecer en el escritorio de los usuarios. La forma de construir un paquete Debian está fuera del 12 .4. Aprovechar el utilitario debconf-show para observar las posibles preguntas y las respuestas que están almacenadas en la base de datos debconf. Para ello es necesario /etc/skel .3. La creación de cualquier usuario se hace utilizando el comando vez hace uso del modelo de creación de usuario existente en basta colocar en /etc/skel. 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 líneas marcadas con * indican las preguntas que fueron contestadas durante la conguración del paquete. La que nos interesa es precisamente la primera que es la de aceptación de la licencia.

/boot/grub/splash. Se han diseñado dos paquetes originales para la conguración automática de la apariencia: debian-simple-cdd-themes. El paquete será instalado durante la fase de instalación del CDD y la imagen se ubicará denitivamente en el directorio /boot/grub. tener una paleta de 4 bits con un La imagen se coloca en debian-cnti-cdd-themes/grub/debian-cnti-splash. basta ubicarse en el directorio raíz que los contiene y ejecutar el comando de construcción apropiado $ cd testcdd/Estilo/debian-simple-cdd-themes $ debian/rules binary de manera que se generen los múltiples archivos te directorio debe aparecer en la directiva simple-cdd . todos ellos dentro del directorio Estilo en el área de trabajo de construcción del CDD.alcance de este documento. El último paso del proceso de instalación del CDD es precisamente instalar GRUB en el sector de arranque del disco duro. Imagen de Entrada en GDM GDM es el gestor de acceso al escritorio que solicita las credenciales de usuario para permitir el ingreso. Cada paquete está contenido en un directorio del mismo nombre. entonces quedará instalada. etc. si para ese momento se ha instalado algún paquete que provea la imagen del menú de arranque en el lugar adecuado. debian-simple-cdd. Todos los objetos de arte gráco residen en un subdirectorio particular (grub.xpm.deb en el local_packages directorio testcdd/Estilo. En los sistemas Debian GNU/Linux se dispone del comando update-grub para generar automáticamente los archivos de conguración de GRUB. Es- del archivo de conguración de para que sean incluidos en el CDD.xpm antes de construir el paquete debian-cnti-cdd-themes. Solamente describiremos la estructura necesaria de los elementos de arte y la estrucura de los paquetes esenciales para la conguración. y en el directorio debian gdm. Para construir los paquetes. Para poder utilizar una imagen como fondo de GRUB está debe tener una resolución de 640x480 pixels. Imagen de Arranque de GRUB GRUB es el gestor de arranque del sistema y tiene la posibilidad de colocar una imagen de fondo por detrás del menú de selección de imágenes de arranque.) a partir de la raíz están los archivos de construcción del paquete siguiendo los estándares del Debian Policy. que genera paquetes individuales conteniendo los elementos de arte gráco para colocarlos en directorios centrales particulares. del paquetes. siendo necesario estudiar el Debian Policy [11] y la Guía para Mantenedores Novatos [12]. que genera paquetes individuales conteniedo las acciones de conguración adicionales para habilitar los elementos de arte gráco de forma automática. La documentación 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.gz y lo utiliza como imagen de fondo de GRUB. En particular el comando verica la existencia del archivo máximo de 14 colores y estar en formato XPM. 13 .

y en el directorio debian-cnti-cdd-themes/images/splash/splash. Receta de Particionamiento El Instalador Debian ofrece un mecanismo mediante el cual las labores de particionamiento y asignación de sistemas de archivo pueden automatizarse tanto como se desee. se ejecute un script que aplique las conguraciones. entonces cualquier usuario nuevo que ingrese a Gnome por primera vez recibirá la conguración automáticamente. 3. antes de construir el paquete debian-cnti-cdd-themes. sino que también debe congurarse Gnome para utilizarla automáticamente para cualquier La imagen de para cualquier splash es especíca de Gnome y al igual que con la imagen anterior.3. Conguración de las Preferencias a cada usuario.conf. El paquete debian-simple-cdd contiene el script de instalación para las preferencias de Gnome. ubicarla en el directorio apropiado y luego congurar Gnome para utilizarla automáticamente nueva sesión de usuario. el cual debe ser Para lograr que el CDD imponga este conjunto de conguraciones es necesario que luego de instalados los paquetes con imagen gráca.5. Note que esto no afecta las conguraciones de usuarios que ya hayan sido creados. de manera que no solamente es necesario instalar la imagen en el directorio apropiado. Todos los componentes del tema para GDM se encuentran en el directorio debian-cnti-cdd-themes/gdm/: imágenes PNG para los íconos de acción. posiblemente creando varios. En principio.Se ha creado un GDM Theme prototipo con la intención que sirva como punto de partida para adaptaciones futuras. el cual es capaz de modicar por lotes las dentro de la base de datos. podría congurarse de tal forma que el usuario no tenga ninguna intervención en el proceso. en ambos casos. Si se modica la conguración por omisión del sistema de manera adecuada. se tiene total libertad en la cantidad de colores a utilizar.png respectivamente. Las preferencias de GDM se encuentran en el archivo editado para escoger el tema adecuado. una imagen PNG para el fondo de pantalla. el archivo XML con la descripción de la geometría del tema y un archivo .desktop para describir el tema a Gnome. Las imagenes para el fondo de pantalla de escritorio y rio debian-cnti-cdd-themes/images/debian-cnti-cdd. es necesario splash se colocan en el directo- nueva sesión de 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. La base de datos de preferencias de Gnome se manipula con el comando claves gconftool-2.png la primera. El utilitario Conguration Editor de Gnome permite explorar las claves con una interfaz gráca de manera que pueda extraerse la información para luego aplicarla con gconftool-2 de forma automática. se construye una con- guración inicial basada en los valores por omisión del sistema. /etc/gdm/gdm. Imagen para Splash y Fondo de Escritorio La imagen para Fondo de Escritorio es independiente del entorno de escritorio en uso. el tema de GDM y la imagen de GRUB. La primera debe tener una resolución mínima de 1280x1024 mientras que la segunda debe tener una resolución de 400x300. 14 . sin embargo en la CDD se utiliza Gnome como ambiente de escritorio por defecto.

Si uno no establece ninguna receta de particionamiento. Si uno hacerse utilizando su nombre en el idioma del CDD. Ese script es invocado automáticamente al terminar la instalación. 3. y como el paquete Xorg es instalado se siembren respuestas en archivo simple. cuando se instala Xorg es posible congurar automáticamente el teclado en base al modelo de teclado que el usuario escogió durante la instalación. de manera que pueden utilizarse comandos y nombres de archivo absolutos. y también es posible suministrar una lista de resoluciones que uno quiere activar automáticamente si la tarjeta de video es capaz. Justo al terminar la instalación de paquetes del perl Este simple. Estas actividades de conguración pueden involucrar la copia de archivos o la ejecución de comandos arbitrarios. 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. La desventaja de establecer una receta de particionamiento está en que se resta exibilidad al usuario avanzado que quiere controlar con precisión la disposición de la información en el disco.y la instalación disponga del disco automáticamente según los parámetros que el creador de la CDD disponga. Al establecer una receta personalizada o simple-cdd genere la receta de partición única. requieren actividades de conguración adicional para operar correctamente.6. La solución es realizar las actividades en el script de post-instalación. #!/bin/sh while read line do echo $line | debconf-set-selections done < <SEEDS 15 . Algunos paquetes. Conguraciones extra. y al eliminar la siembra de recetas de particionamiento se habilitará el uso del asistente de particionamiento estándar del Instalador Debian. a pesar de utilizar debconf. y en secciones anteriores se describió como sembrar la receta para separar las particiones dejar que a gusto. debe modicar el archivo /usr/share/simple-cdd/profiles/default.preseed simultáneamente por mucho que estás no se aplicarán. Por ejemplo. el instalador CDD ejecutará el script de post-instalación denido en script de shell puede incluir todas las actividades de conguración necesarias.postinst. Otra conguración interesante es la de colocar orígenes de paquetes preestablecidos en el /etc/apt/sources. Este archivo de siembra es agregado automáticamente a cualquier CDD. En principio es recomendable establecer alguna receta de particionamiento más razonable que esa.3. 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. simple.list de la instalación. la herramienta simple-cdd genera / y /home. haciendo referencia de ese modo a los contenidos de la instalación. y su ejecución se realiza en un chroot construido sobre la instalación en el disco duro.preseed y colocar en comentarios las siembras de partman/choose_recipe. Desafortunadamente. para que esas conguraciones sean aplicadas es necesario que el sistema base ya esté instalado. la siembra debe una receta para crear una sola partición. Sea cual sea la receta deseada.

[10] Preseeding Es la técnica que permite suministrar respuestas por omisión a los diferentes componentes del Instalador Debian para automatizar el proceso.en 16 .debian.debian.org/ etch main > >/etc/apt/sources. 1024x768 SEEDS dpkg-reconfigure -fnoninteractive xserver-xorg echo deb http://www.org/security/ [5] Paquetes Multimedia para Debian GNU/Linux provistos por Christian Marillat. La documen- tación se incluye al instalar el paquete homónimo. Sid y disponible para su descarga http://packages.debian.k.debian-multimedia.org/sid/debian-cd. Herramientas utilitarias para facilitar la creación de manual en Custom Debian Distributions provista por el Proyecto Debian en la distribución unstable a. [9] debian-cd Herramienta para construir discos de instalación (CD o DVD) de la distribución Debian GNU/Linux disponible en http://packages. http://www.debian.org/mirror/size [3] Lista de Mirrors Ociales Debian. Los detalles de formato pueden encontrarse en su página de manual.org/ [6] simple-cdd.debian. http://www.org/DebianInstaller [8] debconf-set-selections Utilitario de línea de comandos exclusivo de Debian GNU/Linux que permite insertar valores por defecto en la base de datos de conguración de debconf.debian-multimedia. http://www.a. Está disponible en http://www.org/mirror/anonftpsync [2] Dimensiones de un mirror Debian. legible con man debconf-set-selections.html.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.debian.list Referencias [1] anonftpsync Script de shell que facilita la construcción de mirrors completos o parciales Debian.debian.org/releases/stable/i386/apb. La documentación detallada de referencia se encuentra en http://www.org/sid/simple-cdd [7] Debian Installer http://wiki. http://www.debian.org/mirror/official [4] Actualizaciones de Seguridad del Proyecto Debian.

org/gdm-documentation/ 17 . orientado a desarrolladores con poca experiencia que necesitan iniciarse en la tarea de mantener paquetes Debian. así como las especicaciones y condiciones que deben cumplir los paquetes para ser adecuados.debian.html http://www. Se encuentra en el paquete http://www. Se encuentra en el paquete http://www. pero también se instala con maint-guide o maint-guide-es.[11] Debian Policy Guía que describe la estructura y contenidos de los repositorios y sistemas Debian.org/doc/maint-guide/.org/doc/debian-policy/.jirka. Se encuentra en x1259. [12] Debian New Maintainer's Guide Guía que describe la forma en que se construye un paquete Debian. [13] Graphical Greeter Theme Está sección de la documentación de GDM describe los elementos necesarios para construir un tema visual a la medida. pero también se instala con debian-policy.debian.

Sign up to vote on this title
UsefulNot useful