¿Cómo Hacer Tu Propia Distro
¿Cómo Hacer Tu Propia Distro
¿Cómo Hacer Tu Propia Distro
Cmo personalizar el instalador de Debian para que tambin instale paquetes nuestros propios paquetes personalizados?
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
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 -
En sta carpeta encontrar una gran cantidad de listas de tareas. Borr todas las que considere innecesarias para su distribucin.
Nombre con el que se va a mostrar la tarea en la lista de tareas. Debe estar escrito minscula.
Relevance: un_valor
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.
install Instala la tarea automticamente en el sistema aunque el usuario no la seleccione drante la instalacin.
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.
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.
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.
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
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 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.
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
Permite configurar el tamao del cuadro, los colores de las fuentes, de seleccin,entre otros aspectos del men de isolinux.
menu.cfg
Corresponden a los textos mostrados cuando se presiona algunas de las teclas F1 - F10;
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.
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.
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
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
No es necesario que regenerar nuevamente los Releases ni los Packages del repositorio de debian.
IMPORTANTE:
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
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.
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>
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