Вы находитесь на странице: 1из 7

Cmo hacer tu propia distro?

Cmo personalizar el instalador de Debian para que tambin instale paquetes nuestros propios paquetes personalizados?

Para empezar a responder sta pregunta, necesitamos contar con:

1. Un repositorio local: Dnde se encuentren nuestros archivos .deb personalizados;


2. Una copia del repositorio de debian

Contenido
1 Descargar los repositorios: debian, security y local
2 Edicin del paquete
2.1 tasksel
2.1.1 Crear una lista de tareas
2.2 debian-installer
2.2.1 Descargar los fuentes de debian-installer
2.2.2 Instalar dependencias incumplidas de debian-instal ler
2.2.3 Personalizando el instalador
2.2.3.1 Configurar repositorios personalizados
2.2.3.2 Agregar paquetes extras y/o personalizados al instalador
2.2.3.3 Creando el archivo preseed.cfg
2.2.3.3.1 Especificando una ruta para el archivo preseed.cfg
2.2.4 Tuneando el instalador
2.2.4.1 Personalizar el men de isolinux (dentro del paquete debian installer)
2.2.4.2 Personalizar las imgenes y colores del instalador (a partir del paquete rootskel-gtk)
2.2.4.2.1 Las imgenes que se visualizan durante la instalacin
2.2.4.2.2 Color de la ventana, botones, barra de progreso, cuadros de selecci, etc.
2.2.5 Generar la imagen
2.3 debian-cd
2.3.1 Edicin del archivo de configuracin de debian-CD
2.3.2 Modificaciones en debian-cd para incorporar paquetes locales a lo imagen iso
2.3.3 Especificacin de las listas de tareas para el instalador
2.3.4 Personalizar informacin de la distribucin y archivos de documentacin

Descargar los repositorios: debian, security y local


Lo primero que necesita es una copia en la mquina local de los repositorio de debian y el local.

Para descargar repositorios, usted puede instalar el comando debmirror


apt-get install debmirror

Debmirror necesita recibir argumentos especficos. Para obtener informacin sobre el comando, ejecute:
man debmirror

Puede editar el siguiente ejemplo dependiendo de la arquitectura de la distribucin que desea. l ltimo argumento corresponde al lugar dnde se
desea descargar el repositorio. Para contar con una copia del repositorio de debian, debe contar con 37GB de espacio en disco aproximadamente.
debmirror -h ftp.nl.debian.org --progress --dist=squeeze --root=/debian --di-arch=i386 --section=main,non-free,contrib,main/debian-installer

Del mismo modo, genere una copia local del repositorio que contiene los paquetes locales que se pretende incluir a la iso. Por ejemplo, los repositorios
de lihuen
debmirror --host=repo.lihuen.linti.unlp.edu.ar/ --root=lihuen --dist=squeeze/lihuen4 --section=main,non-free,contrib --arch=i386 --progress -

Edicin del paquete


tasksel
Es un paquete que permite la seleccin de tareas a instalar en el sistema Debian, durante o despus de la instalacin.

Para descargar los fuentes del paquete


apt-get source tasksel
Crear una lista de tareas
Una "tarea" es una lista de nombres de paquetes que se pretende instalar en un sistema. Para crear una lista de tareas, debe crear un archivo nuevo
con el nombre que desea asignarle a la nueva tarea en la carpeta:
tasksel-2.88//tasks/

En sta carpeta encontrar una gran cantidad de listas de tareas. Borr todas las que considere innecesarias para su distribucin.

Una tarea debe contar con los siguientes campos:


Task:nombre_de_la_tarea

Nombre con el que se va a mostrar la tarea en la lista de tareas. Debe estar escrito minscula.
Relevance: un_valor

Valor de importancia que se le asigna a la tarea. Vara desde 0 a 10


Description:

Una breve informacin sobre la tarea


Key:

Nombre de los paquetes que son elementales en la tarea. Si alguno de stos paquetes no se encuentran en el CD/DVD de instalacin, no se mostrar
la tarea dentro de las opciones para instalar.
Packages: list

Lista de los nombres de los paquetes que formen la tarea. sta lista debe escribirse con un margen izquierdo de dos espacios en blanco.
Test-new-install: argumento_1 argumento_2

Puede recibir uno o dos parmetros. El argumento del primer parmetro se tiene en cuenta durante la instalacin del sistema. el segundo parmetro se
aplica cuando el usuario ejecuta tasksel con el sistema ya instalado.

Los valores posibles son:

install Instala la tarea automticamente en el sistema aunque el usuario no la seleccione drante la instalacin.

skip No visualiza la tarea entre la lista de opciones.

show: Muestra la tarea dentro de la lista de tareas. No es obligatorio. Pero es importante setearlo como segundo parmetro en el caso de que la tarea
tenga la propiedad skip durante la instalacin.

mark Muestra la tarea como "seleccionada" (con un tilde) durante la instalacin del sistema.

Por ejemplo, en la tarea "gnome" del tasksel de lihuen, se configur:

Test-new-install: mark show Lo que indica que la tarea se muestra como "marcada o seleccionada" durante la instalacin, y se muestra dentro de la
lista de tareas disponibles para instalar cuando el usuario ejecuta tasksel.

Otro ejemplo es la tarea "lihuen". Test-new-install: install skip Como sta tarea contiene paquetes base para la instalacin de Lihuen, no se presenta al
usuario la posibilidad de seleccin. De manera que se instala automticamente y su nombre no se muestra dentro de la lista de tareas a instalar.

debian-installer
Es un paquete que permite crear y personalizar el instalador de Debian.

Instalador modo grfico de Debian-squeeze


Descargar los fuentes de debian-installer
Si usted no cuenta con los archivos fuentes del paquete, puede obterlos ejecutndo el siguiente comando:
apt-get source debian-installer

Instalar dependencias incumplidas de debian-instal ler


IMPORTANTE:El paquete debian-installer debe compilarse bajo el mismo sistema que se pretende generar la imgen iso. Por ejemplo, si usted desea
generar una imagen iso netboot,squeeze, debe tener instalado una distribucin debian squeeze.

Para poder compilar el paquete debian-installer es necesario que instale sus dependencias. La lista de dependencias de debian-installer se encuentra
por defectoen el archivo debian/control. Otra manera de obtener la lista de paquetes que se necesita, es ejecutando el comando:
dpkg-checkbuilddeps

en el directorio raz de debian-installer. Esto comprobar los paquetes instalados en el sistema con una lista de las dependencias del paquete. Luego
se mostrar en pantalla las dependencias incumplidas.
Una vez obtenida la lista, se debe proceder a instalar los paquetes. Para hacerlo basta con correr el comando
apt-get install <paquete1> <paquete2> <paquete3>

siendo paqueteX alguno de los paquetes mostrados en la lista que imprimi dpkg-checkbuilddeps. Lo que resta ahora es completar el paquete
debian-installer con los udebs requeridos para cada imagen.

Personalizando el instalador
Configurar repositorios personalizados

Debian-installer necesita un repositorio de donde tomar los paquetes necesarios para la creacin de la iso.

Por defecto,debian-installer generar un archivo


build/sources.list.udeb

basado en el archivo /etc/apt/sources.list' del sistema.

Si usted intencin es generar una imagen con repositorios diferente a los que se encuentran en su sistema, es posible especificar los repositorios de
donde se desea descargar los paquetes. Para ello tendremos que crear un archivo
build/sources.list.udeb.local

con la especificacin del repositorio que desea. Poer ejemplo:


deb http://repo.lihuen.linti.unlp.edu.ar/debian squeeze main/debian-installer

Agregar paquetes extras y/o personalizados al instalador

Debian-installer utiliza una seria de mini-paquetes (.udeb) que forman parte del instalador. Por ejemplo, para lograr que el instalador tome la apariencia
de Lihuen durante la instalacin, se configura y empaqueta el mini-paquete rootskel-gtk; y se agregan ntfs-modules-2.6.32-5-486-di_1.99_i386.udeb y
ntfsprogs-udeb_2.0.0-1+b1_i386.udeb para posibilitar un particionado en particiones con formato ntfs.

Para tal fin existe la carpeta:


build/localudebs/

Para que debian-installer agregue sta personalizacin, es necesario agregarle el archivo "sources.listi.udeb.local" la direccin de la carpeta con los
.udebs modificados
deb copy:/home/usuario/debian-installer-20110106/build/ localudebs/

Observaciones:

Aunque usted hayacreado el sources.list.udeb.local, cuando generemos la imagen el archivo sources.list.udeb igualmente ser creado, pero no
utilizado.

Creando el archivo preseed.cfg

Una excelente forma de automatizar debian-installer es usar la preconfiguracin. La preconfiguracin ofrece un mecanismo para responder a preguntas
realizadas durante la instalacin sin tener que introducir manualmente las respuestas mientras sta se ejecuta. Esto hace posible que se automaticen
la mayora de las instalaciones e incluso ofrece funcionalidades que no estn disponibles durante una instalacin normal. Para ello se crea un archivo
preseed.cfg, en el cual se incluirn todas las opciones a automatizar.

A pesar de que se puede generar un archivo preseed.cfg utilizando algunos comandos, es preferible crear uno desde el principio. De esta manera, la
automatizacin de la instalacin ser totalmente personalizable. Empezaremos creando un archivo y llamndolo
build/preseed.cfg

Se pueden utilizar tres mtodos de preconfiguracin: modificando el initrd para que incluya el archivo preseed.cfg, llamando al archivo preseed.cfg
especificando una ruta, o solicitando el archivo preseed.cfg va red.

Utilizar preseed.cfg nos permite automatizar muchas ms cosas, como el particionamiento, configuracin de las X, etc., pero para utilizarlos se
recomienda tener conocimiento del hardware del equipo donde se va a realizar la instalacin. Para ms informacin, visite el sitio oficial.
Especificando una ruta para el archivo preseed.cfg

Este es el mtodo mas sencillo, recomendado y utilizado por excelencia. Tendremos que editar el archivo de configuracin ubicado en
installer/build/config/common. En el ubicaremos la variable PRESEED y le especificaremos el directorio donde se encuentra nuestro archivo
preseed.cfg. A manera de ejemplo:
PRESEED = /home/<user>/preseed.cfg

Tuneando el instalador
Personalizar el men de isolinux (dentro del paquete debian installer)

Es posible adaptar la parte "grfica" del men del instalador a nuestro gusto. Es decir, se pueden modificar las imgenes, colores, textos de ayuda, etc.
Men del instalador de Debian-squeeze

Men del instalador de Lihuen 4 -squeeze


Estos archivos estn ubicados en build/boot/x86/

Los ms importantes son:


stdmenu.cfg

Permite configurar el tamao del cuadro, los colores de las fuentes, de seleccin,entre otros aspectos del men de isolinux.
menu.cfg

En l se puede configurar la cantidad de entradas aparecern en el men del instalador.


f1..10.txt

Corresponden a los textos mostrados cuando se presiona algunas de las teclas F1 - F10;

Una carpeta adelante, en build/boot/x86/pics/

Se encuentran las imgenes mostradas por el instalador.

IMPORTANTE= Asegures que las nuevas imgenes mantengan los mismos tamaos y formatos que las originales. De otro modo, isolinux mostrar
un mensaje de error informando que no puede mostrar el men de la instalacin.
Personalizar las imgenes y colores del instalador (a partir del paquete rootskel-gtk)

Rootskel-gtk es un paquete que utiliza debian-installer para configurar los aspectos grficos del instalador. Si decide editarlo, coloque, vuelva a
compilarlo y siga las especificaciones que se detallaron en en punto Agregar paquetes extras y/o personalizados al instalador , desarrollado en sta
documentacin.

Puede descargar su cdigo fuente ejecutando:


apt-get source rootskel-gtk

ste mini-paquete permite configurar aspectos como:


Las imgenes que se visualizan durante la instalacin

Los archivos de las imgenes que se muestran durante la instalacin de la distribucin se encuentran en la carpeta:
rootskel-gtk/src/usr/share/graphics/

Las nuevas imgenes deben respetar el tamao y el formato que las que se encuentran en sta carpeta. Para evitar edicin extra de cdigo, se
recomienda que coloque sus imgenes con los mismos nombres que tiene los archivos originales. De sta forma se asegurar que funcione
correctamente.
Color de la ventana, botones, barra de progreso, cuadros de selecci, etc.

Para personalizar los colores del instalador debe editar el archivo:


rootskel-gtk_1.21/usr/share/themes/Clearlooks/gtk-2.0/gtkrc

Los campos ms importantes de ste archivo son:


style "clearlooks-default"
{
[...]
bg[NORMAL] = "#e0e4e0" # Color de la Ventana instalador
bg[PRELIGHT] = "#e0e4e0" # Color de la Ventana instalador
bg[SELECTED] = "#01440d" # Color para los campos seleccionados
# verde lihuen
bg[INSENSITIVE] = "#e0e4e0" # Color de la Ventana instalador
bg[ACTIVE] = "#e0e4e0" # Color de la Ventana instalador
[...]
base[ACTIVE] = "#01440d" # # Color para los campos activados
# verde lihuen
base[SELECTED] = "#01440d" # Color para los campos seleccionados
# verde lihuen
[...]
}
[...] continuacin del archivo gtkrc

Generar la imagen
Una vez instaladas las dependencias y elegidos los repositorios deseados, lo que queda es generar la imagen. Para ello se debe tener en cuenta l Para
obtener una lista de todas las posibles combinaciones y tipos, basta con utilizar el comando make en el directorio build
build make

Si lo que se desea es que la imagen solo tenga el instalador, se puede crear una imagen mini-ISO con solo el netboot initrd en ella. Por ejemplo, el
comando
# make build_netboot

Una vez finalizado el proceso, la imagen ser generada en el directorio :


build/dest

La mayora de las imgenes creadas por debian-installer estn listas para ser usadas. Las excepciones son las imgenes CD/DVD, que solo
contendrn la base (initrd y kernel).

Para crear los archivos necesarios para ir armando la iso DVD o CD, es necesario ejecutar el comadno make de la siguiente manera:
make build_cdrom_isolinux

Posteriormente, debe copiar el resultado de sta ejecucin en su repositorio de debian local


cp -r dest/cdrom/ dest/MANIFEST dest/MANIFEST.udebs /home/debian/dists/squeeze/main/installer-i386/current/images/

No es necesario que regenerar nuevamente los Releases ni los Packages del repositorio de debian.

IMPORTANTE:

Antes de cada compilacin,ejecute el comando


make reallyclean

para borrar todos los archivos temporales y configuraciones que hayan quedado de una compilacin anterior.

debian-cd
Edicin del archivo de configuracin de debian-CD
En el raz del paquete se encuentra el archivo ms importante:

Archivo:CONF.sh.gz

En ste archivo se deben setear los valores de variables globales que son accedidas por otros scripts durante el proceso de creacin de la imagen.
# El directorio donde se encuentra la carpeta de los fuentes de debian-cd
export BASEDIR=`pwd`
# Aca escribimos el nombre de nuestra distribucin.
export CDNAME=Lihuen
# Nombre de la versin de debian que se quiere crear la imagen .iso
export CODENAME=squeeze
# Ac escribimos el nmero de la versin de nuestra distribucin
export DEBVERSION="4.01"
# Es necesario indicar una direccin en donde debian-cd pueda guardar archivos temporalmente.
Lo importante de sta carpeta es que, como no se borra una vez creada la iso, permite obtener informacin a modo debug.
export TDIR=/home/usuario/iso_tmp
# debian-cd permite especificar la carpeta de destino para la imagen iso
export OUT=/home/usuario/iso_create
# Es aconsejable visualizar detalladamente las pasos de creacin de la imagen.
export VERBOSE_MAKE=1
# Descomente sta variable si su intensin es crear la imagen en un nico archivo .iso (no crear archivos jigdo)
export MAXJIGDOS=0
# En sta variable hay que especificar el tipo de soporte para el que se pretende crear la iso
export DISKTYPE=DVD
# debian-cd completa la capacidad del CD/DVD con los paquetes ms utilizados.
# Por ejemplo, si tus listas de paquetes ocupan 2.5GB, debian-cd completa los 2GB restantes
# con paquetes extras. Para evitar sto, existe la variable COMPLETE en 0
export COMPLETE=0

Tareas para el instalador


# Se selecciona el nmero 2 para que el instalador incorpore los paquetes para debian-#
installer.
export INSTALLER_CD=2
# Lo ms interesante es la variable TASK. En ella se puede escribir el nombre de una
# tareas de las que se encuentren dentro de la carpeta debian-cd-3.1.5/tasks/.
# Es posible crear una tarea "madre" que contenga una lista de nombres de tareas.
# ste tema se detalla en la seccin "especificacin de tareas para el instalador".
# Por ejemplo, la tarea LihuenDVD-all, contiene una lista con los nombres de todas las
# tareas que se encuentran en el la carpeta " task " del paquete tasksel-lihuen.
export TASK=LihuenDVD-all

Especificaciones de los repositorios


# En sta variable hay que especificar el path de nuestra copia local del repositorio de debian
export MIRROR=/home/usuario/debian
# Especificamos el path de la copia local del repositorio de security
export SECURITY=/home/usuario/security
# Despus de realizar pruebas sobre las configuraciones, no encontramos la forma de que
# debian-cd agregue los paquetes locales de la manera en que se establece en el REDME.
# Por tal motivo, decidimos utilizar la variable LOCALUDEB y realizaruna serie de modificaciones
# en determinados scripts como se explica en la seccin "Modificaciones en debian-cd para incorporar
# paquetes locales a lo imagen iso"
# Especificamos el path de la copia local del repositorio de paquetes locales
export LOCALDEBS=/home/usuario/locales

Si necesitas incorporar paquetes NONFREE y CONTRIB a tu imagen iso, es necesario que descomentes las cariables y las setees en 1. Lo mismo
ocurre conla variable FORCE_FIRMWARE. Como la idea de Lihuen es desarrollar una distribucin con paquetes free, no se configuran tales variables
en stos ejemplos.

Modificaciones en debian-cd para incorporar paquetes locales a lo imagen iso


Especificacin de las listas de tareas para el instalador
Para que debian-cd almacene en el CD/DVD espacio para nuestros paquetes, es necesario crear listas de tareas. Para debian-cd, una lista de tareas,
es un archivo que contiene una lista con nombres de tareas simple, Una lista de tarea simple es un archivo donde se listan los nombres de paquetes a
instalar. Pueden ser iguales que las que se crearon para el paquete tasksel, pero su sintaxis no es la misma. Para debian-cd slo es necesario que se
escriban los nombres de paquetes uno debajo del otro. Por ejemplo, en el tasksel Lihuen tenemos la tarea accesibilidad
Task: accesibilidad
Relevance: 10
Section: user
Description: Accesibilidad
Esta tarea instala software para incrementar la accesibilidad de Lihuen a
todo tipo de personas.
Key:
gnome-orca
dasher
Packages: list
gok
libcolorblind0
eviacam

Entonces, para pasar la tarea accesibilidad al formato para debian-cd, debemos crear un archivo nuevo en la carpeta:

debian-cd-3.1.5/tasks/squeeze/

y listar los nombres de los paquetes que se encuentran en el campo "Key" y el Packages". Nuestro ejemplo quedara:
gnome-orca
dasher
gok
libcolorblind0
eviacam

Para la tarea de debian-cd, no es importante el orden, pero no debe haber espacios en blanco entre el margen izquierdo y el nombre del paquete

Bueno. ya tenemos una tarea simple, ahora lo que vamos a hacer es una tarea compuesta. Para ello creamos un archivo vaco y escribimos en l los
nombres de las listas simples que queramos al CD/DVD, utilizando la siguiente sintaxis:
#include <nombre_de_tarea_simple>

Por ejemplo,el siguiente es el contenido de la tarea compuesta LihuenDVD-all.


/* Packages that should really be on CD1 */
#include <debian-installer+kernel>
#include <forcd1>
#include <task-essential-lihuen_all>
#include <accesibilidad>
#include <desarrollo>
#include <ltsp>
#include <educacion>
#include <lxde>
#include <gnome>
#include <lihuen>
#include <kernel>

IMPORTANTE

La variable TASK del archivo CONF:sh que se explic anteriormente, debe contener el nombre de la tarea compuesta que nosotros creamos, si
queremos que debian-cd tome nuestra lista de tareas compuesta para crear la imagen. ste es el motivo por el cual, la variable TASK del archivo de
configuracin de Lihuen, tiene seteado el nombre:LihuenDVD-al
Personalizar informacin de la distribucin y archivos de documentacin
start_new_disc es un archivo que contiene variables cuyos valores son utilizados por debian-cd para generar informacin de la distribucin.
Documentacin a cerca de la distribucin, nombre de la label del CD/DVD del instalador, son ejemplos de la documentacin que se genera a partir del
nombre de la distro y de su versin, datos que se sitan en ste archivo.

debian-cd-3.1.5/tools/start_new_disc

Para generar los documentos con el nombre de Lihuen, se cambi los valores variables por el de Debian. Tambin se reemplaz el valor de la versin
de 6.0 a 4.1

Note que est comentado desde la lnea 379 a la 385, porque la configuracin que tiene validez para nosotros en la que est desde la lnea 397 a la
393 En sta configuracin, se debe completar bien el path de la ubicacain de los archivos Release del repositorio local
Ejemplo:
LOCALDEBS/dists/$CODENAME/lihuen4/main/binary-$ARCH/Release

Вам также может понравиться