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.1 | 29 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
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:
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.
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.
Podemos considerar distintos elementos clave al adaptar una distribución:
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 :
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
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
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.
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, ...
Elección de la distribución base Intentamos buscar los siguientes objetivos :
Facilidad en la creación de paquetes personalizados
Facilidad en la actualización de paquetes
Facilidad de integrar paquetes de otras distribuciones
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
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:
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
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.
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.
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:
Existen una serie de aspectos genéricos en las personalizaciones:
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.
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
Ambas actualmente toman como distribución base Debian GNU/Linux "Woody" con kernel 2.4.x
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
Vamos a enumerar el conjunto de tareas que deberíamos realizar antes de iniciar la personalización:
Disponer de un inventario hardware y software del parque de máquinas
Elegir la distribución entre las existentes que mejor se adapte a las necesidades
Obtener las necesidades básicas de la organización
Estudiar los perfiles adecuados en función de las necesidades
Analizar el conjunto de paquetes relacionados con el perfil y disponibles en la distribución elegida.
Diseñar el mecanismo de instalación
Estudiar las necesidades de formación
Elaborar documentación apropiada
Establecer mecanismos de soporte
Establecer mecanismos de actualización de versiones de la personalización
Foro de ayuda
Soporte final
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.
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'
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.
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.
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:
Creación de un Sistema Mínimo
Generar el kernel de dicho sistema
Generar el sistema de ficheros
Seleccionar las utilidades necesarias y copiarlas en el sistema de ficheros
Comprimir el sistema de ficheros y copiarlo junto al kernel y un gestor de arranque
Hacer una imagen con todo lo anterior y comprobar que funcione
Para la segunda parte del proceso los pasos a seguir son los siguientes:
Creación del programa de instalación consistente en:
Detección de hardware
Creación y formateo de particiones
Instalación de un Sistema Base
Instalación del conjunto de paquetes
Instalación del gestor de arranque y reinicio del sistema
Creación del Sistema Base
Distribuir los paquetes seleccionados de los distintos perfiles
Añadir al Sistema Mínimo el programa de instalación
Generar una imagen ISO con el Sistema Mínimo y el Sistema Base y el conjunto de paquetes
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
http://www.laespiral.org/ Facilitar la colaboración de la comunidad de habla hispana con el Proyecto Debian
http://www.linuxfromscratch.org/ Proyecto para crear una distribución propia de Linux
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
http://www.linex.org El Sistema Operativo Libre de Extremadura
http://www.tldp.org/HOWTO/Bootdisk-HOWTO/ The Linux Bootdisk HOWTO