Problemática encontrada al personalizar una distribución

Daniel García Franco

Manuel Rodríguez Borrego

Miguel Angel Lupiañez Rueda

Antonio José Ramos Márquez

Jorge Bianquetti de las Heras

Rafael Ríos Saavedra

Jose Ignacio Paris Prieto

David Byle

Hugo Santander Ballestín

Juan S. Ojeda Pérez

Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre GNU, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation. No habiendo Secciones Invariantes, ni Textos de Portada ni Textos de Contra Portada. Puede consultar una copia de la licencia en: http://www.gnu.org/copyleft/fdl.html

Historial de revisiones
Revisión 1.129 de Septiembre de 2002

Resumen

La ponencia versa sobre la posibilidad de poder crear una distribución de GNU/Linux adaptada a unas necesidades concretas. Intenta describir cuales son las etapas de la personalización y los aspectos sobre los cuales tenemos que incidir de una forma más detallada. Trata de realizar un estudio comparativo de las distintas distribuciones base GNU/Linux del mercado desde el punto de vista de la creación de una distribución propia basada en una distribución base.


Tabla de contenidos

1. Introducción
2. Elementos de una distribución desde el punto de vista de la Personalización
3. Estudio comparativo de las distribuciones base más importantes del mercado
4. Estudio de personalización de Distribuciones disponibles en el mercado
5. Aspectos a contemplar en la creación de una personalización de una distribución
6. Historia de cómo llegar a realizar la personalización de una distribución
7. Aspectos ampliables de la ponencia
8. Referencias

1. Introducción

La personalización no llega a tener el carácter tan general de una distribución. Así, una distribución es una recopilación de software ya compilado y empaquetado para facilitar su instalación y configuración. En la personalización tratamos de adaptar una o varias distribuciones a unas necesidades muy concretas intentando personalizar tanto el conjunto de paquetes como la configuración de los mismos a las funcionalidades demandadas.

Actualmente el abanico de distribuciones es muy amplio.Los criterios de elección son muy variados abarcando desde la seguridad, facilidad de instalación, facilidad de uso, versatilidad, ... Así las distribuciones de Linux se diferencian en distintos aspectos:

  • El conjunto de paquetes instalado por defecto suele ser distinto dependiendo de la distribución.

  • Los procedimientos de instalación difieren bastante.

  • Facilidad en el uso y capacidad de las herramientas de gestión de paquetes.

  • La ubicación de los ficheros de configuración varían en función de la distribución.

La realidad anteriormente descrita nos puede llevar a la necesidad de homogeneizar el conjunto de distribuciones mediante la construcción de una distribución a medida.

Entre los distintos motivos resaltaremos los siguientes:

Estandarización de la plataforma

Permite controlar el proceso de instalación de paquetes permitiéndonos poder incorporar paquetes propios o incluso añadir configuraciones a medida de paquetes estandars además de controlar qué paquetes se instalan.

Adaptar las necesidades de la organización

Permite en el caso de que tengamos claramente definido distintos perfiles en nuestra organización realizar instalaciones ajustadas a las distintas actividades que podamos identificar.

Para ilustrar el proceso de personalizar una distribución nos planteamos un proyecto piloto sobre la personalización de GNU/Linux para una pequeña Administración Local .Básicamente las necesidades de una Administración son :

  • Disponer de un ordenador que actúe como servidor permitiéndo la comunicación entre todos los puestos que existan

  • La otra gran demanda de cualquier Administración es el uso de una suite ofimática para resolver los trámites administrativos

A lo largo de la exposición intentaremos reflejar sobre este ejemplo concreto las aspectos genéricos de la personalización de una distribución.

2. Elementos de una distribución desde el punto de vista de la Personalización

Podemos considerar distintos elementos clave al adaptar una distribución:

  1. Perfiles de la personalización Los perfiles responden a puestos funcionales que podemos diferenciar dentro de una organización.Así por ejemplo, en una empresa dedicada al desarrollo de Sistemas de Información podríamos tener distintos perfiles:programador, analista, jefe de proyectos, ... los cuales hacen uso de un conjunto de herramientas muy diversas. En nuestro caso distinguimos dos perfiles :

    1. Perfil puesto cliente Es un puesto usado por el personal de la Administración en el cual incorporamos herramientas ofimáticas para realizar labores administrativas, herramientas de correo electronico y navegación a traves de Internet.Está orientado a usuarios inexpertos

    2. Perfil puesto servidor Es un puesto en el cual nos permitirá la instalación y configuración de los distintos servicios de Red.Incorporaremos herramientas que nos permitan realizar la monitorización de los distintos servicios, así como intentaremos automatizar al máximo la configuración de los mismos fijando gran atención en aspectos de seguridad

  2. Conjunto de paquetes Dependiendo de los perfiles el conjunto de paquetes difieren.Este aspecto realmente es el que diferencia una buena personalización de otra.En algunos perfiles la situación es bastante fácil puesto que las propias distribuciones ya identifican dichos perfiles.

  3. Personalización de paquetes En esta tarea podríamos incluir desde la internacionalización de un paquete, la configuración de un paquete, la inclusión de escritorios personalizados: imagenes, acceso a aplicaciones, ...

  4. Elección de la distribución base Intentamos buscar los siguientes objetivos :

    1. Facilidad en la creación de paquetes personalizados

    2. Facilidad en la actualización de paquetes

    3. Facilidad de integrar paquetes de otras distribuciones

  5. Mecanismo de instalación Inicialmente debemos plantearnos qué mecanismo de instalación usar:

    • La creación de uno propio

    • Adaptar uno existente

    • Usar algun tipo de herramientas

En este sentido hemos analizado las distintas opciones.Inicialmente usamos la utilidad dialog que permite realizar de forma rápida GUI .Actualmente estamos estudiando PGI que es un sistema de creación de herramientas de Instalación Gráfica Multiarquitectura sobre Debian GNU/Linux desarrollado por Progeny Linux Systems, Inc.

En nuestro caso práctico el procedimiento de instalación debía ajustarse en la medida de los posible a las características concretas del usuario final que realizase la instalación. Así tenemos que:

  • Para el perfil puesto de cliente el usuario potencial es un usuario inexperto.Incluimos un procedimiento de instalación en el cual podemos automatizar el mayor nuero de opciones de instalación reflejando un procedimiento lo más gráfico posible y lo más informativo en cuanto a las posibilidades de funcionamiento que le va a ofrecer el sistema.

  • Para el perfil puesto de servidor el usuario potencial es un usuario con conocimientos de informática.Nuestra preocupación es ofrecer flexibilidad en el proceso de instalación proporcionando herramientas manuales o automatizadas de la configuración de los distintos servicios de red

3. Estudio comparativo de las distribuciones base más importantes del mercado

Las distribuciones GNU/Linux disponen de formatos propios de empaquetamiento del software en el cual se incluye información variada en mayor o menor medida: Software en formato binario o fuente, scripts de instalación, desinstalación, configuración, ...La instalación de este empaquetamiento se realiza normalmente con la utilidad que proporciona la distribución.

El sistema de paquetes lleva implícito una política en cuanto a la forma de organizar la información del paquete, lo cual no hace aconsejable mezclar paquetes de distintas distribuciones.

Hemos intentado realizar un análisis desde el punto de vista de la personalización de las distribuciones más importantes:

Basadas en rpm

  • El sistema rpm indica las dependencias entre los paquetes pero no las resuelve de forma automática.Esto limita seriamente la posibilidad de hacer cambios automatizados

  • Aunque en general es posible instalar paquetes de otras distribuciones que usen el mismo formato

  • La interdependencia entre versiones de los paquetes suele complicar la actualización de paquetes

Basadas en tgz

  • Es un formato, casi en desuso en el que se omite información de su organización: dónde instalar los diversos ficheros de programa, su tamaño,la dependencia con respecto a otros paquetes, etc.

  • Es relativamente complicado preparar una personalización de un paquete.

  • Permite el tener instalado distintas versiones de un mismo paquete software.

Basadas en deb

  • Deriva directamente del proyecto GNU y cuenta con gran respaldo de la comunidad de usuarios a la hora del mantenimiento y la adaptaciones de estandares.

  • Soporta la actualización de paquetes de forma completamente autónoma, descargando por red las nuevas versiones y sus dependencias de forma completamente automática.

  • Dispone de actualizaciones de seguridad perfectamente actualizadas de forma análoga a la actualización de paquetes normal.

  • La personalización es perfectamente soportada en lo que respecta a cambios de ficheros de configuración entre versiones.

  • Es muy facil crear ficheros deb personalizados a partir de un paquete ya instalado que tenga cambios en su configuración con la herramienta dpkg-repack.

En nuestro caso elegimos Debian por distintas razones:

  • El conjunto de paquetes puede cubrir ampliamente las necesidades de los perfiles considerados en nuestra personalización.

  • La adaptación del sistema de paquetes Debian permite heredar todas las bondades del sistema de paquetes de Debian.

4. Estudio de personalización de Distribuciones disponibles en el mercado

Puesto que nuestro proyecto piloto ha sido realizar una personalización de una distribución en el ámbito de la Administración;resaltaremos dos iniciativas de grán interes dentro de la Administración:

  1. El proyecto RHODAS de migración a estaciones de trabajo Linux como usuario final en el M.A.P.

  2. LinEx (Linux en Extremadura) trata de incorporarse al sistema educativo extremeño.

Existen una serie de aspectos genéricos en las personalizaciones:

Están enfocadas a una audiencia concreta

  • En este sentido, el objetivo de Linex ha sido el sector de la educación.

  • El sector del proyecto RHODAS son todos los puestos de trabajo del M.A.P.

Tienen unos objetivos concretos

  • Linex intenta ofrecer una plataforma estable orientada a un usuario no experto en informática.

  • Entre los objetivos básicos del proyecto RHODAS tenemos:

    • Ofrecer un sistema robusto, fiable y de alta calidad

    • Proporcionar un entorno intuitivo y sencillo de manejar para el usuario final

    • Disponer de tareas de administración mínimas

Dependencia de la distribución base en la que se basa

Ambas actualmente toman como distribución base Debian GNU/Linux "Woody" con kernel 2.4.x

El conjunto de paquetes debe estar bien planificado y presentar coherencia con respecto a su utilización final

  • El estado actual del Proyecto RHODAS es el siguiente:

    • XFree86 v4

    • Gestor de Ventanas KDE 2.2

    • OpenOffice 1.0 como software ofimático

    • Conjunto de aplicaciones Open Source para la navegación y multimedia

    • WINE (para emular aplicaciones Windows)

    • Servidor de impresión CUPS

    • Sistema de Instalación y Configuración Automática de PC's (SystemImager)

  • En el caso de LinEx la situación del proyecto es la siguiente:

    • Herramientas ofimáticas:abiword, kword, kpresenter, ...

    • Gestor de Ventanas GNOME

    • Escritorio personalizado

    • Conjunto de aplicaciones Open Source para la navegación y multimedia

5. Aspectos a contemplar en la creación de una personalización de una distribución

Vamos a enumerar el conjunto de tareas que deberíamos realizar antes de iniciar la personalización:

  1. Disponer de un inventario hardware y software del parque de máquinas

  2. Elegir la distribución entre las existentes que mejor se adapte a las necesidades

  3. Obtener las necesidades básicas de la organización

  4. Estudiar los perfiles adecuados en función de las necesidades

  5. Analizar el conjunto de paquetes relacionados con el perfil y disponibles en la distribución elegida.

  6. Diseñar el mecanismo de instalación

  7. Estudiar las necesidades de formación

  8. Elaborar documentación apropiada

  9. Establecer mecanismos de soporte

    • Establecer mecanismos de actualización de versiones de la personalización

    • Foro de ayuda

    • Soporte final

6. Historia de cómo llegar a realizar la personalización de una distribución

En esta sección describiremos el proceso de estudio que realizamos para personalizar una distribución Este apartado creemos que puede ser de interés para todo aquel que quiera aprender el funcionamiento interno de una distribución.

El proceso de instalación tiene dos partes claramente direrenciadas, la primera se desarrolla desde que se arranca la máquina con el CD de instalación de una distribución cualquiera, hasta el momento en el cual se comienza a ejecutar el programa de instalación, este punto no se suele apreciar, si nos fijamos en el proceso como un usuario.La segunda parte, es en si el programa de instalación que va desde la ejecución del programa de instalación, hasta que hacemos el primer arranque de nuestro sistema, ya completamente instalado. En la primera parte se arranca un sistema operativo completo que por supuesto es GNU/Linux, este sistema operativo es mínimo y de propósito específico, ya que su objetivo es dar el soporte necesario para que el programa de instalación pueda realizar todas las tareas de detección de hardware, creación de particiones y sistemas de ficheros, etc...Dicho sistema, carga su sistema de ficheros en un disco de memoria RAM, y su principal fin es iniciar todo lo necesario para llamar al programa de instalación.

Creación del Sistema Mínimo

El sistema mínimo en sí es una minidistribución, por lo cual para su creación hemos tomado muchas ideas de minidistribuciones ya existentes, y nos hemos basado en un documento de Linux 'The Linux BootDisk HOWTO'

Gestores de Arranque

Seguidamente realizamos un pequeño estudio de los principales gestores de arranque analizando las posibilidades de realizar personalizar el arranque.Estudiamos varios gestores de arranque (GRUB, LILO) y las conclusiones extraidas del trabajo fueron las siguientes:

  • La forma de interactuar GRUB y LILO con los archivos que se encuentran en un sistema de ficheros es bastante diferente entre ambos.LILO está muy ligado a GNU/Linux, necesitando que el kernel le faciliten la localización física de los ficheros ;en cambio GRUB puede interaccionar con cualquier sistema operativo y cualquier sistema de ficheros.

  • LILO solo ofrece pasar parámetros al prompt cuando arranca, mientras que GRUB ofrece una especie de shell muy versatil.

  • Los ficheros de configuración son conceptualmente similares

  • En LILO el proceso de personalización se puede realizar de forma más rápida que con GRUB dando la posiblidad de incluir cualquier tipo de fichero gráfico.

  • Ambos permiten presentar un menú para realizar el arranque que deseemos.

Perfiles concretos

Posteriormente nos planteamos un proyecto piloto de una distribución para una pequeña Administración. Realizamos un estudio comparativo del conjunto de paquetes que definían cada uno de los perfiles.

Sistema de Instalación

Finalmente analizamos cómo realizar un programa de instalación estudiando otros mecanismos de instalación existentes en otras distribuciones y personalizaciones

Al finalizar el arranque del sistema mínimo y copiar el Sistema Base se realiza una llamada chroot al directorio /destino - que será el directorio raiz final y ejecutaremos el programa /sbin/instala.sh que se encuentra en /destino/sbin/ .Dicho programa es un script que continua con la instalación realizando la instalación del perfil indicado.

Los pasos necesarios para formar la primera parte del proceso de instalación son los siguientes:

  1. Creación de un Sistema Mínimo

    1. Generar el kernel de dicho sistema

    2. Generar el sistema de ficheros

    3. Seleccionar las utilidades necesarias y copiarlas en el sistema de ficheros

    4. Comprimir el sistema de ficheros y copiarlo junto al kernel y un gestor de arranque

    5. Hacer una imagen con todo lo anterior y comprobar que funcione

Para la segunda parte del proceso los pasos a seguir son los siguientes:

  1. Creación del programa de instalación consistente en:

    1. Detección de hardware

    2. Creación y formateo de particiones

    3. Instalación de un Sistema Base

    4. Instalación del conjunto de paquetes

    5. Instalación del gestor de arranque y reinicio del sistema

  2. Creación del Sistema Base

  3. Distribuir los paquetes seleccionados de los distintos perfiles

  4. Añadir al Sistema Mínimo el programa de instalación

  5. Generar una imagen ISO con el Sistema Mínimo y el Sistema Base y el conjunto de paquetes

7. Aspectos ampliables de la ponencia

Entre los distintos aspectos que podríamos enumerar para ampliar el contenido de la ponencia serían los siguientes:

  • Ampliación de los puntos tratados

  • Explicar el proceso de personalización de la distribución sobre otros ejemplos concretos

  • Otros aspectos no contemplados por los autores

8. Referencias

  1. http://www.laespiral.org/ Facilitar la colaboración de la comunidad de habla hispana con el Proyecto Debian

  2. http://www.linuxfromscratch.org/ Proyecto para crear una distribución propia de Linux

  3. http://es.tldp.org/Articulos/0000otras/doc-proyecto-rhodas/doc-proyecto-rhodas/book1.htm Proyecto RHODAS de migración a estaciones de trabajo Linux como usuario final en el MAP

  4. http://www.linex.org El Sistema Operativo Libre de Extremadura

  5. http://www.tldp.org/HOWTO/Bootdisk-HOWTO/ The Linux Bootdisk HOWTO