DescargasDocumentaciónComunidadRecetasCapturas de Pantalla


Traducciones desactualizadas. La fecha de la última modificación de la versión original de este texto es más reciente que esta traducción. La versión original (en inglés) contiene información más reciente. ¡Usted puede contribuir con una actualización!.

Personalizando el LiveCD de GoboLinux: un manual

Esta es una guía rápida para conocer los entresijos de la construcción del LiveCD de GoboLinux. Te permitirá coger habilidad con el manejo de las herramientas que crean el CD, para que puedas hacer tus propias personalizaciones. Con esto también esperamos hacer más sencilla la entrada a potenciales contibuyentes al desarrollo de la distribución.

Prerrequisitos

Este manual asume que estás usando un sistema GoboLinux, con la última versión de el paquete Scripts instalada. El núcleo necesita tener soporte para UnionFS, SquashFS y CramFS. También necesitarás el paquete SquashFS-Tools instalado. Todo esto está disponible en los repositorios de GoboLinux.

Warning Este manual también asume que todos los pasos son ejecutados con privilegios de superusuario (puedes pasar a superusuario con su o usar sudo). Esto es necesario ya que las herramientas necesitan crear ficheros especiales de dispositivos, desempaquetar archivos manteniedo sus privilegios, establecer ciertos permisos (suid bit) y montar sistemas de ficheros usando UnionFS. Como siempre, hay que tener cuidado cuando se realizan tareas como superusuario, cuando se está ejecutando software descargado de los repositorios CVS que no es estable aún y sobre todo cuando se están realizando ambas cosas como haremos aquí. Sigue los pasos de este manual bajo tu propia responsabilidad.

Las Herramientas

Para empezar, necesitas instalar el paquete BuildLiveCD. Puedes hacerlo con el comando:

 
Compile buildlivecd 

Un buen número de paquetes y herramientas de GoboLinux están implicadas en el proceso de construcción del CD, pero este paquete es el único que necesitas tener instalado en el directorio /Programs. Veremos todos estos paquetes y herramientas en detalle después, pero por el momento aquí tienes una visión general de ellos:

El entorno maestro del CD

Una vez que tienes BuildLiveCD instalado en tu sistema, ya puedes preparar el entorno maestro del CD. Un simple comando crea todos los directorios necesarios y descarga todos los paquetes que se necesitan: UpdateEnvironment. Ejecútalo en un directorio vacío; en nuestros ejemplos usaremos /Depot/LiveCD.

 
mkdir /Depot/LiveCD 
cd /Depot/LiveCD 
UpdateEnvironment 

Te en cuenta que esto descargará varios cientos de megabytes en paquetes, así que dale su tiempo.

Dev Info Para desarrolladores de GoboLinux: Este script descarga algunos ficheros desde el CVS y mantiene una copia local del repositorio CVS en LocalCVS/. Para facilitar el desarrollo, quizás prefieras tener una copia con la que puedas escribir al repositorio, en lugar de la copia anónima del CVS que se usa por defecto. Para hacerlo, pasale tu nombre de usuario en Savannah como parámetro adicional a UpdateEnvironment.
 
UpdateEnvironment hisham 
Si tu nombre usuario en tu máquina no es el mismo que el nombre de usuario de Savannah, puedes pasárselo como segundo argumento (como estás ejecutando el script como superusuario, el realizará un "sudo" a tu cuenta de usuario cuando ejecute cvs).

Construyendo el CD

Todo el proceso de creacción del CD es realizado por el script CompressAndBuildISO. La primera vez que lo ejecutes, lo puedes llamar sin ningún parámetro y el realizará todo el proceso:

 
CompressAndBuildISO 

El script se compone de unas pocas fases -- cuando cambies algo que sólo afecta a alguna de las últimas fases, puedes pasarle un argumento para evitar que se ejecuten las fases previas, ahorrando de este modo tiempo. Las fases que lo componen son:

Un paseo por el proceso de arranque del LiveCD

El programa de arranque del CD

Aún no escrito

El entorno InitRD

Por completar

El entorno InitRD es un mini-sistema GoboLinux creado por el script MakeInitRDTree, que es llamado cuando ejecutas CompressAndBuildISO. Lo puedes encontrar en el directorio Output/InitRD.

No modifiques Output/InitRD directamente: su contenido es creado cuando CompressAndBuildISO ejecuta la fase initrd. Para modificar los scripts InitRD, modifica en su lugar la copia local del CVS de InitRDScripts, que está en LocalCVS/InitRDScripts.

Actualmente, esta parte del entorno de construcción del CD no es muy amigable con el proceso de personalización del CD. Si quieres mantener un versión propio del InitRD, necesitas reeplazar LocalCVS/InitRD con tu propia copia antes de ejecutar UpdateEnvironment.

Dev Info Para desarrolladores de GoboLinux: Para que tus cambios sean permanentes, hay varios lugares donde estos cambios deben ser aplicados:
  • Los cambios en /Programs/InitRDScripts deberían de ser enviados al repositorio CVS de GoboLinux. Si tu copia de LocalCVS/ fue creada en modo de escritura al repositorio, es sólo cuestion de ejecutar cvs commit.
  • Otras entradas en /Programs son recogidas desde el repositorio initrd-packages/ (echa un ojo a MakeInitRDTree para más detalles).
  • La estructura de directorios y otros ficheros de configuración son generados por MakeInitRDTree, así que si modificas algo de esto, modifica el script para que cuando se ejecute de nuevo cree los ficheros y la estructura que deseas.
  • .

Dentro de la imagen SquasFS

Por completar

El entorno principal del LiveCD (la estructura de directorios que ves una vez que el LiveCD ha sido arrancado) es almacenado en una serie de imágenes SquashFS. Estas imágenes son contruidas en 2 capas: una que es de sólo lectura y que forma el sistema de ficheros actual, (Programs, Files, System, etc.), y otra sobre la que se puede escribir, que se sitúa encima para propósitos de depuración, que contiene los ficheros que se pueden haber creado mientras estas dentor del sistema usando ChrootEnvironment.

span class="dir">Output/ROLayer. Esta es creada a partir de los paquetes listados en Archives/Packages que son combinados para construir /Programs, ficheros adicionales bajo Archives/Ext que son desempaquetados a sus correspondientes localizaciones, más una serie de ficheros y directorios que son generados al vuelo por el script BuildRoot. BuildRoot es llamado por CompressAndBuildISO durante la fase rolayer.

Ten en cuenta que cuando haces modificaciones que alteran el propio entorno del LiveCD, necesitas regenerar la imagen SquashFS. Para hacerlo, pasa un argumento adicional a CompressAndBuildISO:

 
CompressAndBuildISO squashfs 
Dev Info Para desarrolladores de GoboLinux: Para que tus cambios sean permanentes, necesitas consultar tus cambios en Output/RWLayer y aplicarlos a las recetas que generarán los nuevos paquetes.

El conjunto de paquetes para el CD esta actualmente en el repositorio livecd-packages (mira UpdateEnvironment para conocer los detalles). Cuando modifiques el conjunto de paquetes , necesitarás actualizar los ficheros en /Programs/BuildLiveCD/Current/Data/Packages-List-*.

Después de modificar los paquetes, es necesario reconstruir todo completamente, empezando por rolayer, para mantener directorio Output sincronizado con el repositorio de paquetes:
 
CompressAndBuildISO rolayer