Lihuen
RSSRSS AtomAtom

Diferencia entre revisiones de «¿Cómo personalizar el instalador de Debian para que también instale nuestros paquetes personalizados?»

 
(No se muestran 12 ediciones intermedias de un usuario)
Línea 1: Línea 1:
# [[Descargando repositorios con debmirror| Realizar una copia en la máquina (donde vamos a trabajar) del repositorio de Debian, y del repositorio local donde tenemos nuestros .deb personalizados]]
+
[[Category: Incompleto]]
# [[ Personalizando debian-installer | Personalizar y compilar el instalador de debian para adaptarlo a nuestros objetivos]]
+
# [[Personalizando el paquete tasksel | Personalizar el paquete tasksel para crear las listas de tareas a instalar en nuestra distro.]]
+
  
 +
Si alguna vez pensaste en hacer tu propia distro, seguramente te has realizado ésta pregunta. Personalizar un instalador para que instale nuestros paquetes personalizados no es una cuestión trivial, sobre todo porque  no siempre se encuentra documentación en determinados aspectos específicos y hay que recurrir al ensayo y error.
  
 +
Dividimos el objetivo en 4 pasos importantes:
  
==debian-cd==
+
Para personalizar el instalador es necesario configurar y editar 4 paquetes debian:
=== Edición del archivo de configuración de debian-CD ===
+
- tasksel
En el raíz del paquete se encuentra el archivo más importante:
+
- debian-installer
 +
- rootskel-gtk
 +
- debian-c
  
[[Archivo:CONF.sh.gz | debian-cd-3.1.5/CONF.sh]]
+
[[Descargando repositorios con debmirror|Paso 1: Descargando repositorios com debmirror ]]   
 +
           
 +
debian-cd necesita tener acceso a los repositorios para poder agregar cada paquete a la imagen iso que deseamos crear. Por tal motivo necesitamos contar con una copia local del repositorio de debian (aprox 40GB) y de nuestro repositorio local donde están alojados nuestros paquetes modificados y personalizados.
  
 +
Si no contas con los paquetes locales subidos a un repositorio, deberas crear la estructura de uno. Podes crear los archivos Release y Packages con el comando
  
En éste archivo se deben setear los valores de variables globales que son accedidas por otros scripts durante el proceso de creación de la imagen.
+
  apt-ftparchive
  
# El directorio donde se encuentra la carpeta de los fuentes de debian-cd 
+
IMPORTANTE:
export BASEDIR=`pwd`
+
+
# Aca escribimos el nombre de nuestra distribución.
+
export CDNAME=Lihuen
+
 
+
# Nombre de la versión de debian que se quiere crear la imagen .iso           
+
export CODENAME=squeeze
+
+
# Acá escribimos el número de la versión de nuestra distribución
+
export DEBVERSION="4.01"
+
+
# Es necesario indicar una dirección 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 información 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 creación de la imagen.
+
export VERBOSE_MAKE=1
+
+
# Descomente ésta variable si su intensión 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 más 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
+
Si se agregan o eliminan paquetes de las copias de repositorios, es necesario realizar los Release y los Packages nuevamente.  
+
# Se selecciona el número 2 para que el instalador incorpore los paquetes para debian-#
+
installer.
+
  export INSTALLER_CD=2
+
+
# Lo más 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 sección "especificación 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 
+
[[ Personalizando debian-installer | Paso 2: Personalizar y compilar el instalador de debian para adaptarlo a nuestros objetivos]]
+
# 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
+
+
# Después 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 sección "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 distribución con paquetes free, no se configuran tales variables en éstos ejemplos.
+
Para realizar este paso debemos editar el paquete debian-installer. Este paquete es el encargado de generar el instalador del sistema.  
  
=== Modificaciones en debian-cd para incorporar paquetes locales a lo imagen iso ===
+
[[ Personalizando el paquete tasksel | Paso 3: Personalizar el paquete tasksel para crear las listas de tareas a instalar en nuestra distro.]]
  
=== Especificación 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 sólo 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
+
[[ Configurando debian-cd | Paso 4: La pieza clave para ensamblar todo el trabajo anterior: configurar el paquete debian-cd ]]
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:
+
 
+
[[:Archivo:task_squeeze.tar.gz |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 quedaría:
+
 
+
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 vacío 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 configuración de Lihuen, tiene seteado el nombre:LihuenDVD-al
+
 
+
=== Personalizar información de la distribución y archivos de documentación ===
+
 
+
start_new_disc es un archivo que contiene variables cuyos valores son utilizados por debian-cd para generar información de la distribución. Documentación a cerca de la distribución, nombre de la label del CD/DVD del instalador, son ejemplos de la documentación que se genera a partir del nombre de la distro y de su versión, datos que se sitúan en éste archivo.
+
 
+
[[:Archivo:start_new_disc.gz| 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. Tambièn se reemplazó el valor de la versiòn de 6.0 a 4.1
+

Última revisión de 12:41 21 may 2012


Si alguna vez pensaste en hacer tu propia distro, seguramente te has realizado ésta pregunta. Personalizar un instalador para que instale nuestros paquetes personalizados no es una cuestión trivial, sobre todo porque no siempre se encuentra documentación en determinados aspectos específicos y hay que recurrir al ensayo y error.

Dividimos el objetivo en 4 pasos importantes:

Para personalizar el instalador es necesario configurar y editar 4 paquetes debian: - tasksel - debian-installer - rootskel-gtk - debian-c

Paso 1: Descargando repositorios com debmirror

debian-cd necesita tener acceso a los repositorios para poder agregar cada paquete a la imagen iso que deseamos crear. Por tal motivo necesitamos contar con una copia local del repositorio de debian (aprox 40GB) y de nuestro repositorio local donde están alojados nuestros paquetes modificados y personalizados.

Si no contas con los paquetes locales subidos a un repositorio, deberas crear la estructura de uno. Podes crear los archivos Release y Packages con el comando

apt-ftparchive

IMPORTANTE:

Si se agregan o eliminan paquetes de las copias de repositorios, es necesario realizar los Release y los Packages nuevamente.

Paso 2: Personalizar y compilar el instalador de debian para adaptarlo a nuestros objetivos

Para realizar este paso debemos editar el paquete debian-installer. Este paquete es el encargado de generar el instalador del sistema.

Paso 3: Personalizar el paquete tasksel para crear las listas de tareas a instalar en nuestra distro.


Paso 4: La pieza clave para ensamblar todo el trabajo anterior: configurar el paquete debian-cd