Cdd

  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Cdd as PDF for free.

More details

  • Words: 6,441
  • Pages: 17
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

1.

<[email protected]>.

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 con-

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

siste en utilizar la herramienta herramienta denominada

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

debian.ejemplo.com,

siendo

conveniente que en el servicio DNS de la red aparezca registrado este nombre asociado a la dirección IP correspondiente.

1

El sistema ha de contar con suciente espacio en disco [2] para la construcción de la réplica. El espacio asignado para la réplica debe estar en la partición sobre la cual resida

/var/www/debian. Instale Apache2 (aptitude

install apache2) y asegúrese que cualquier cliente Web puede visitar http://debian.ejemplo.com/debian y acceder al directorio raíz de la réplica.

Instale

rsync (aptitude install rsync).

Coloque el script

anonftpsync en el directorio /usr/local/sbin y modifíquelo para ajus-

tarse a sus necesidades particulares de replicación. El script tiene comentarios que explican con detalle todas las opciones. Como mínimo es necesario especicar:

• •

El directorio en el cual se construirá la réplica, indicado en la variable El servidor remoto a partir del cual tomar la copia utilizando la variable

RSYNC_HOST.

TO.

rsync,

indicado en

Puede usarse cualquiera de los servidores principales [3] del

proyecto Debian GNU/Linux.



En el servidor remoto debe existir un directorio raíz sobre el cual operar el indicado en la variable



RSYNC_DIR.

rsync,

La dirección de correo del usuario responsable del mirror, indicada en la variable

MAILTO,

de manera que las operaciones de sincronización envíen un reporte de éxito

o fallo automáticamente. 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.ch.debian.org RSYNC_DIR=debian/ [email protected] Una vez modicado el script, utilice el comando

root

y grupo

root,

y el comando

chmod

chown

para que pertenezca al usuario

para que sólo el dueño pueda ejecutarlo. Si se

ejecuta el comando manualmente, en el archivo

/var/log/debian-mirror.log aparecerán

los resultados del trabajo de sincronización paulatinamente. Note que la primera vez que ejecute el comando tomará un tiempo

considerable en culminar su trabajo.

1.1.2. Mantenimiento de la réplica Para que la réplica sea útil es necesario mantenerla actualizada. El script

anonftpsync está

diseñado no sólo para la creación inicial, sino también para el mantenimiento diario de la réplica, pues utiliza

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

se eliminan del repositorio principal y ajustar las listas de paquetes. Para que el mantenimiento de la réplica sea automático, incluya la ejecución del comando en el archivo

/etc/crontab

del sistema. Es conveniente hacer no menos de una sincronización

diaria, 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.

2

1.1.3. 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, es conveniente crear réplicas 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 replicación pero utilizando diferentes directorios dentro del servidor. Por ejemplo, para construir una réplica 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 réplicas par ambos repositorios adicionales,

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

disponibles en el servidor a través de los URL y

1.2. Estación de Trabajo de Adaptación. Es necesario un equipo en el cual llevar a cabo la construcción de las imágenes de instalación de los CDD, aplicando de forma iterativa el proceso descrito más adelante. El proceso de construcción de las imágenes demanda una cantidad importante de espacio en disco, no solamente para contener las múltiples imagenes de CD-ROM y posiblemente DVD generadas durante el proceso, sino también los paquetes y elementos de conguración intermedios que son necesarios durante el proceso, así como posiblemente la ejecución de máquinas virtuales para vericar la funcionalidad de las distribuciones generadas.

3

1.2.1. Requerimientos. 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. Mientras más rápido sea el procesador, más eciente será el proceso de generación de las imágenes así como su prueba por simulación. Un Pentium M de 1.4GHz sería lo

mínimo para ser productivo.

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. Lo

mínimo para ser productivo es contar con 512Mb de RAM.

Suciente espacio en disco para contener la instalación del sistema con su ambiente de escritorio, las imágenes ISO que se generen, 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. Lo mínimo para ser productivo es contar con 40Gb de disco duro. Una unidad CD-R/CD-RW para poder preparar las imágenes físicas con las ISOs generadas durante el proceso de adaptación.

1.2.2. Instalación de Referencia. 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. Asumiendo una máquina 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

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

Instalar los paquetes

debootstrap Instalar te

.deb

y

manualmente la última versión 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 gráca

1A

gdebi

o bien desde la línea de comandos utilizando

la fecha de escritura de este documento, la versión más reciente de debian-cd es la 3.0.3. 4

dpkg.

Instalar quete

manualmente la última versión disponible del paquete simple-cdd [6].2 El pa-

.deb

se descarga usando el navegador y una vez en el escritorio puede instalarse

bien sea con la herramienta gráca

dpkg.

gdebi

o bien desde la línea de comandos utilizando

Una vez creadas las imágenes ISO con las CDD, es posible vericar su funcionalidad utilizando algún emulador que permita construir máquinas virtuales con capacidades grácas. El autor utiliza QEmu para ese propósito, por tanto recomienda instalar:

qemu,

3



El paquete



El paquete con los módulos del kernel apropiados para acelerar el funcionamiento

para tener el emulador y todas sus dependencias.

de QEmu en la máquina antriona. Los módulos dependen del kernel particular instalado, y para nuestro ejemplo sería necesario instalar

2.

kqemu-modules-2.6-686.

Procedimiento de Construcción

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

La metodología de creación de CDD utilizando mientas existentes en Debian (debian-cd,

truir una imagen de instalación basada en el Instalador Debian [7] pero con las adaptaciones de interés. El desarrollador del CDD debe establecer la lista de paquetes a instalar y puede denir la lista de respuestas automáticas (debconf

preseeding ) a aplicar sobre aquellos componentes que

sea menester (paquetes o diálogos de instalación). Adicionalmente puede establecer la ejecución de scripts desarrollados a la medida, para instalar o congurar cosas que no estén empaquetadas o que no aprovechen

debconf.

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, conguraciones y scripts deseados. De ese modo es posible contar con una CDD que incluya variantes de instalación a seleccionar de manera simple y directa. El proceso de desarrollo del CDD es iterativo: se inicia con una conguración básica conteniendo un único perl simple, el cual va siendo enriquecido agregando más paquetes, más conguraciones y más scripts de conguración. En cada iteración, se genera un ISO, se verica su funcionalidad en la máquina virtual y posiblemente en una máquina 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 línea de comandos para preparar el area de trabajo

2A

la fecha de escritura de este documento, la versión más reciente de simple-cdd es la 0.3.6. conguración detallada de QEmu escapa al alcance de este documento. Consulte la documentación incluida con el paquete qemu para determinar las maneras en las cuales puede congurarse más efectivamente. 3 La

5

$ mkdir testcdd $ cd testcdd El directorio estará inicialmente vacío y es responsabilidad del desarrollador del CDD crear el perl mínimo de trabajo, así como el archivo de conguración 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 según los nombres de los archivos que encuentra, de manera que para crear

inicial,

el perl de nombre

inicial.packages

es necesario crear:

Este archivo de texto es

obligatorio

en la denición del perl y contie-

ne un nombre de paquete Debian por cada línea. Los paquetes que se indiquen en este archivo serán instalados y congurados automáticamente durante el proceso de instalación del CDD. 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;

openoffice.org y se instalarán todos los paquetes de los cuales dependa openoffice.org, sin necesidad de enumerarlos. Las líneas en blanco y las líneas que comienzan con # se ignoran, 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.

inicial.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. Lo que se escriba en este archivo será utilizado como descripción informativa para el usuario durante el proceso de instalación, de manera que pueda decidir cuales perles seleccionar.

inicial.preseed omisión (el

Este archivo de texto es

preseed )

opcional

y contiene las selecciones a utilizar por

para las preguntas de conguración que presente el Instalador De-

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

bian o cualquier paquete que utilice idéntico al requerido por el

inicial.postinst

Este archivo de texto es

opcional

del archivo es

y contiene un script de shell que será

ejecutado automáticamente una vez que se hayan instalado todos los paquetes indicados en el perl. La intención de este script es realizar las conguraciones manuales necesarias para aquellos paquetes que no aprovechan

debconf.

2.3. Archivo de conguración. Una vez denidos los archivos para uno o más perles dentro del directorio proles, es necesario crear un archivo de conguración para la creación de la imagen. El paquete

simple-cdd

incluye un archivo de conguración de ejemplo, completamente documentado, el cual puede

6

encontrarse en el directorio

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

y que sirve de punto de

partida. Así construimos el archivo

simple-cdd.conf

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.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 gráfico, 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. Generación del CDD Una vez preparado el archivo de conguración y la información del perl, estamos en posición de generar la imagen del CDD. 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.conf

con las opciones adecuadas. En nuestro caso

que realizará la construcción 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.

7

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 instalación base mínima funcional. La lista de paquetes particulares estará en

tmp/deboostrap en un archivo con el nombre de la distribución y plataforma (etch-i386). debootstrap y para los perles denidos en el CDD. dentro del directorio de trabajo en el subdirectorio tmp/mirror, construyendo

3. Se descargan todos los paquetes necesarios para

un repositorio parcial solamente con los paquetes a incluir en el CDD. Mientras más paquetes sean necesarios, más tiempo tomará analizarlos, más tiempo tomará descargarlos y más espacio ocuparán localmente. Note que si se tiene un repositorio con las actualizaciones de seguridad, se descargarán los paquetes más actualizados. 4. 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. La conguración generada es

suciente para la mayoría de los casos, 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, de modo que debe referirse a la documentación de debian-cd para más basta modicar los archivos de conguración 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 creación de la imagen produce varias bitácoras de avance dentro de los directorios de trabajo. Si la operación no puede llevarse a cabo exitósamente, aparecerá un mensaje de error acorde; si este mensaje resulta escueto, pueden consultarse las bitácoras de operación para determinar con precisión la causa del error. Las bitácoras de interés son:

tmp/cd-build/etc/log.add_packages

que cubre la fase de recopilación de paquetes desde

la copia local hacia la imagen ISO.

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

que cubre la fase de inclusión de paquetes y cálculo

de las dependencias. Cuando el mensaje de error emitido por la herramienta apunta a paquetes faltantes, se comienza por examinar ésta bitácora para determinar si se trata de dependencias fallidas o incorrectamente calculadas. La última línea de esta bitácora reeja la cantidad de paquetes que se incluirán, así como el espacio estimado que ocuparán.

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 máquina emulada. Típicamente 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 emulación arrancando desde el CD-ROM para así simular la instalación. 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 emulación del hardware y el arranque de la imagen de instalación. En ella pueden seguirse los pasos de instalación, particionado, instalación de paquetes, etc. observando si cumple con los requerimientos deseados.

3.

Adaptación del CDD. 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, pero aprovechar todos los paquetes y herramientas disponibles en Debian GNU/Linux. En este sentido, la herramienta

simple-cdd

ofrece varios mecanismos que pueden aprovecharse para

lograr la adaptación.

3.1. Imagen de arranque del CD de instalación. Cuando se inicia el CD de instalación 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

máximo

de 14 (catorce) colores con una

resolución de 640 pixels de ancho y no más 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. Selección de Paquetes. 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. De

manera que a falta de un perl, 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. 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. En el archivo de conguración

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

para indicar los perles que deben incluirse en la imagen. Durante la instalación se le presentará al usuario una lista de todos los perles contenidos en el disco, dándole la oportunidad de seleccionar uno o más de ellos. Se combinarán los paquetes de todos los perles seleccionados durante la instalación, de manera que es posible tener un mismo paquete en más de un perl. También es posible forzar la instalación de uno o más perles

sin necesidad que el usuario

los seleccione, automatizando aún más el proceso de instalación. Para aprovechar esta funcionalidad se utiliza la directiva

simple-cdd.conf,

auto_profiles=perfil1 perfil2

en el archivo de conguración

cuyo resultado es instalar los perles indicados automáticamente.

9

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á automáticamente. La imagen de instalación se creará con el kernel genérico 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 más paquetes con imágenes de kernel optimizadas para una o más arquitecturas superiores, deben indicarse a

simple-cdd en la línea de comandos opción --kernel-packages.

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. Esto es, se instala un sistema modelo, y luego se extrae la lista de paquetes instalados aprovechando el comando

dpkg,

pero ltrando

los paquetes correspondientes al kernel con un comando similar a

$ 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 podría utilizarse como punto de partida para crear un perl.

3.3. Conguración Automática. Una cantidad importante de paquetes Debian reciben su conguración a través de la base de datos

debconf.

Esta contiene un listado de preguntas de conguración, además 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 cuál interface activar DHCP; 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. Cuando se crea un CDD es posible suministrar un archivo con las respuestas por defecto y las preguntas que aún deben ser formuladas, de manera que al efectuar la instalación la cantidad de información solicitada al usuario sea mínima.

3.3.1. Sembrando Respuestas para el Instalador. 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]. Evidentemente, mientras menos preguntas se formulen resultará más fácil para el usuario, pero menos exible para el experto. 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

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

inicial.preseed:

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, asumiendo que el país es Venezuela y congurando el reloj de la máquina en hora UTC. Tiene el efecto adicional que la instalación de paquetes incluirá la sección

contrib

y

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 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á. Quedan abiertas las preguntas sobre el nombre de usuario y el esquema de particionamiento. Esta última también puede ser preestablecida como lo explica la documentación, pero es preferible dejar el diálogo actual que ofrece la opción de particionamiento automático; 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. Así, si se quiere utilizar la receta que separa la partición

/home del resto, la siembra

adecuada sería

d-i partman-auto/choose_recipe select Separar la partición /home Una conguración interesante es la de deshabilitar el usuario

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

la administración. Para lograr eso, basta con que el perl incluya el paquete archivo de

preseed

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 algún paquete que es congurado con

debconf,

es natural

querer automatizar las respuestas a las preguntas que sean necesarias para hacerlo funcionar con la mínima intervención del usuario. En este sentido, la manera más práctica de lograrlo es como sigue: 1. Instalar el paquete en la máquina de pruebas y congurarlo usando

11

debconf.

debconf-show para observar las posibles preguntas y las respuestas que están almacenadas en la base de datos debconf. Por ejemplo, para el paquete sun-java5-jre puede hacerse

2. Aprovechar el utilitario

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. 3. Incluir en el archivo preseed del perl la pregunta con la respuesta adecuada asociada al paquete de interés. En el caso del paquetes

sun-java5-jre

agregaríamos

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

3.3.3. Conguración automática del Perl de los Usuarios. Durante el proceso de instalación, 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. La creación de cualquier usuario se hace utilizando el comando vez hace uso del modelo de creación de usuario existente en

/etc/skel.

adduser

que a su

Si se desea que la conguración inicial del primer usuario tenga características particulares, basta colocar en

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

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

de escritorio. Típicamente se incluyen en

/etc/skel

archivos

.profile, .vimrc,

directorios

de conguración para aplicaciones generales que no son de escritorio, incluso la creación de un directorio

Desktop

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

escritorio de los usuarios. Los usuarios creados posteriormente a la instalación también recibirán la conguración inicial a partir del modelo contenido en

/etc/skel.

3.3.4. Conguración automática de apariencia. 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. Cada elemento de arte tiene características particulares y debe ser instalado de manera particular, por lo cual los paquetes Debian a crear tendrán 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 Guía para Mantenedores Novatos [12]. Solamente describiremos la estructura necesaria de los elementos de arte y la estrucura de los paquetes esenciales para la conguración. Se han diseñado dos paquetes originales para la conguración automática de la apariencia:

debian-simple-cdd-themes, que genera paquetes individuales conteniendo los elementos de arte gráco para colocarlos en directorios centrales particulares. Todos los objetos de arte gráco residen en un subdirectorio particular (grub, del paquetes, y en el directorio

debian

gdm,

etc.) a partir de la raíz

están los archivos de construcción del paquete

siguiendo los estándares del Debian Policy.

debian-simple-cdd, que genera paquetes individuales conteniedo las acciones de conguración adicionales para habilitar los elementos de arte gráco de forma automática. Cada paquete está contenido en un directorio del mismo nombre, todos ellos dentro del directorio

Estilo

en el área de trabajo de construcción del CDD. Para construir los paquetes, 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 .deb en el local_packages

testcdd/Estilo.

de manera que se generen los múltiples archivos

directorio

te directorio debe aparecer en la directiva

del archivo de conguración de

simple-cdd

Es-

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 detrás del menú de selección de imágenes de arranque. El último paso del proceso de instalación del CDD es precisamente instalar GRUB en el sector de arranque del disco duro; si para ese momento se ha instalado algún 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 resolución de 640x480 pixels, tener una paleta de 4 bits con un

máximo de 14 colores y estar en formato XPM.

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 instalación 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 La imagen se coloca en

automáticamente los archivos de conguración de GRUB. En particular el comando verica la existencia del archivo

/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 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.

13

Se ha creado un

GDM Theme

prototipo con la intención 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/:

imágenes PNG para los

íconos de acción, 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.

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 también debe congurarse Gnome para utilizarla automáticamente para cualquier La imagen de

nueva sesión de usuario.

splash es especíca de Gnome y al igual que con la imagen anterior, es necesario

ubicarla en el directorio apropiado y luego congurar Gnome para utilizarla automáticamente para cualquier

nueva sesión de usuario.

Las imagenes para el fondo de pantalla de escritorio y

splash

se colocan en el directo-

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 resolución mínima de 1280x1024 mientras que la segunda debe tener una resolución de 400x300; en ambos casos, se tiene total libertad en la cantidad de colores a utilizar.

Conguración de las Preferencias Las preferencias de Gnome se almacenan en la base de datos GConf que son particulares

a

cada usuario.

Cuando un usuario ingresa por primera vez a Gnome, se construye una con-

guración inicial basada en los valores por omisión del sistema. Si se modica la conguración por omisión del sistema de manera adecuada, entonces cualquier usuario nuevo que ingrese a Gnome por primera vez recibirá la conguración automáticamente. 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 gráca de manera que pueda extraerse la información para luego aplicarla con

gconftool-2

de forma automática.

Las preferencias de GDM se encuentran en el archivo

/etc/gdm/gdm.conf,

el cual debe ser

editado para escoger el tema adecuado. Para lograr que el CDD imponga este conjunto de conguraciones es necesario que luego de instalados los paquetes con imagen gráca, se ejecute un script que aplique las conguraciones. El paquete

debian-simple-cdd contiene el script de instalación 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 asignación de sistemas de archivo pueden automatizarse tanto como se desee. En principio, podría congurarse de tal forma que el usuario no tenga ninguna intervención en el proceso,

14

y la instalación disponga del disco automáticamente según los parámetros 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 precisión la disposición de la información en el disco. Si uno

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

una receta para crear una sola partición. En principio es recomendable establecer alguna receta de particionamiento más razonable que esa, y en secciones anteriores se describió como sembrar la receta para separar las particiones

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

hacerse utilizando su nombre en el idioma del CDD. Al establecer una receta personalizada o dejar que

simple-cdd genere la receta de partición única, se pierde la funcionalidad de particio-

namiento asistido que ofrece el Instalador Debian y en consecuencia la posibilidad de particionar a gusto. Si uno

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 automáticamente a cualquier CDD, y al eliminar la siembra de recetas de particionamiento se habilitará el uso del asistente de particionamiento estándar del Instalador Debian.

3.3.6. Conguraciones extra. Algunos paquetes, a pesar de utilizar debconf, requieren actividades de conguración adicional para operar correctamente. Estas actividades de conguración pueden involucrar la copia de archivos o la ejecución de comandos arbitrarios. Justo al terminar la instalación de pa-

simple, simple.postinst.

quetes del perl Este

script

el instalador CDD ejecutará el

script

de post-instalación denido en

de shell puede incluir todas las actividades de conguración necesarias. Por

ejemplo, 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, y también es posible suministrar una lista de resoluciones que uno quiere activar automáticamente 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

simple.preseed

simultáneamente por mucho que

estás no se aplicarán.

Otra conguración interesante es la de colocar orígenes de paquetes preestablecidos en el archivo

/etc/apt/sources.list

de la instalación.

La solución es realizar las actividades en el

script

de post-instalación. Ese script es invocado

automáticamente al terminar la instalación, y su ejecución se realiza en un

chroot

construido

sobre la instalación 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 instalación.

#!/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 construcción 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 creación de

Custom Debian Distributions

provista

por el Proyecto Debian en la distribución unstable a.k.a. Sid y disponible para su descarga manual en [7]

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

Debian Installer

http://wiki.debian.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. Los detalles de formato pueden encontrarse en su página de manual, legible con

[9]

man debconf-set-selections.

debian-cd Herramienta para construir discos de instalación (CD o DVD) de la distribución Debian GNU/Linux disponible en

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

La documen-

tación se incluye al instalar el paquete homónimo. [10]

Preseeding Es la técnica que permite suministrar respuestas por omisión a los diferentes componentes del Instalador Debian para automatizar el proceso. La documentación detallada de referencia se encuentra en

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

[11]

Debian Policy Guía 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

http://www.debian.org/doc/debian-policy/, pero también se instala con debian-policy.

encuentra en el paquete [12]

Debian New Maintainer's Guide Guía 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.

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

Se encuentra en el paquete [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. Se encuentra en

x1259.html

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

17

Related Documents

Cdd
October 2019 14
Trabalho Cdd
November 2019 20
Direct Drive Centrifugal Cdd
December 2019 16
Saddle Brook Cdd
December 2019 12