Personalización de la distribución - guadalinex-archive/guadalinex-v5 GitHub Wiki

Personalizacion de la distribucion

  • La personalización de una distribución es un proceso mediante el cual, a partir de una distribución base, se obtiene una nueva adaptada y configurada para unas necesidades concretas previamente definidas.\ La adaptación y configuración son procesos que se refieren a la obtención de una distribución final con las características software deseadas, lo que incluye:

    • Un conjunto de aplicaciones determinado, seleccionado para satisfacer la demanda del conjunto final de usuarios para el que se destina la distribución.
    • Configuración adecuada de las mismas para funcionar de la forma que se desea: idioma castellano, directorio donde se almacenan los documentos, y un largo etcétera que depende de las características de cada aplicación.
    • Apariencia de los elementos gráficos, donde se incluye la configuración del tema que se va a utilizar en el entorno gráfico, selección de iconos, fondo de escritorio, imagen que se muestra durante el arranque del sistema,...

Una distribución se compone fundamentalmente de elementos software organizados en paquetes, cada uno de los cuales aporta una funcionalidad particular a la distribución.

Es posible personalizar prácticamente todos los elementos de la distribución configurando adecuadamente los paquetes que la componen. Sin embargo, existe un pequeño conjunto de elementos cuya configuración no se limita a lo anterior, siendo ésta un poco diferente. En estos casos, es necesario personalizar el sistema de generación.

Por poner un ejemplo, éste es el caso de “isolinux”, que se encarga del arranque del sistema para comenzar la instalación. Con isolinux se pueden configurar diferentes opciones de arranque o la imagen inicial que se muestra de la distribución. Estos elementos se configuran a partir del sistema de generación y no configurando los paquetes.

Exceptuando estos pocos casos, la gran mayoría de elementos de una distribución se configuran a partir de los paquetes que los componen. Por este motivo, es necesario seleccionar una buena estrategia para llevar a cabo la configuración de los paquetes. Posibilidades hay muchas, cada una con sus ventajas e inconvenientes. Por citar algunos ejemplos, se tiene:

  • Copia directa de las configuraciones de los paquetes: Este método consiste en preparar todos los ficheros de configuración de los diferentes paquetes y copiarlos en las ubicaciones correspondientes para que surtan efecto las configuraciones. Esto se puede hacer, por ejemplo, creando un fichero “tar.gz” con todas las configuraciones y descomprimiéndolo en el directorio raíz (“/”) del sistema que se desea personalizar. Este método es muy sencillo y rápido de llevar a la práctica. Cuenta con los inconvenientes de que es difícil controlar los cambios que se aplican al sistema final además de que los cambios que se están aplicando no quedan recogidos en ningún paquete, por lo que es difícil deshacerlos para restaurar el sistema y dejarlo en el estado original. Además, de esta manera es complicado mantener las versiones “live” y “no live” sincronizadas, puesto que los cambios no se aplican a partir de paquetes. Asimismo, mediante este método no se tienen control sobre las aplicaciones (paquetes) que se instalan, teniendo que llevar a cabo esta tarea de forma manual. Es decir, no hay ninguna forma de instalar todas las aplicaciones que se deseen a partir de la instalación de algún(os) paquete(s). Esta instalación de aplicaciones habría que llevarla a cabo manualmente. Ésta fue la aproximación que se siguió en Guadalinex 2004, por poner un ejemplo.

  • Recompilación de paquetes: Este método consiste en partir del conjunto original de paquetes Debian de la distribución base y recompilarlos para que incluyan directamente la configuración deseada. Ésta es la aproximación que ha seguido Ubuntu con respecto de Debian: se han recompilado para Ubuntu muchos paquetes Debian para adecuarlos a esta nueva distribución. Aunque este método puede ser adecuado en muchos casos, presenta el inconveniente de que cada vez que cambia el paquete original, si se desea aprovechar las mejoras que se hayan hecho, hay que volver a aplicar los cambios sobre el mismo y regenerar el paquete. Por tanto, el mantenimiento se puede complicar si el conjunto de paquetes que hay que mantener es elevado. Además, desde el punto de vista del trabajo colaborativo, esta aproximación es factible definiendo responsables de cada paquete, que se encargarán de mantener sus paquetes actualizados. Esto es factible cuando el número de desarrolladores es elevado. Por otra parte, como en el caso anterior, también habría que llevar a mano la instalación de los paquetes que se deseen de forma manual, paquete por paquete.

  • GCS y "divert": Esta aproximación es la que se siguió en Guadalinex v4 y ahora en Guadalinex v5. Tiene un enfoque similar al anterior, pero trata de corregir algunos problemas y limitaciones que se encontraron en el sistema basado en "dpsyco" y CDD en Guadalinex v3. Uno de ellos era la velocidad en la instalación de paquetes. “dpsyco” no era un sistema eficiente debido a la cantidad de comprobaciones que se llevan a cabo durante la instalación. Otro problema es la escasa implantación de esta tecnología como base para derivar distribuciones de Linux; son muy contados los casos en los que se utiliza esta tecnología.

Para la creación de Guadalinex v4, se desarrolló el sistema GCS (Guadalinex Customize System) que utiliza “divert” para gestionar las configuraciones del sistema. Básicamente, esto consiste en que cuando un paquete A va a modificar la configuración establecida por otro, B, el primero instala su propia versión del fichero de configuración, con otro nombre distinto, renombra el fichero de configuración original, y crea un enlace simbólico a la nueva versión del fichero de configuración. “divert” permite gestionar las configuraciones de esta manera de una forma muy sencilla. Este sistema GCS se describirá en detalle más adelante.