¿Cómo personalizarlo? - guadalinex-archive/guadalinex-v5 GitHub Wiki

¿Cómo personalizarlo?

  • Después de haber visto el instalador en acción pasemos a explicar de qué se trata y cómo podemos modificarlo a nuestro gusto para que cumpla nuestras necesidades.

El instalador es el encargado de recoger toda la información necesaria y manejarla de tal manera para que, en el momento de la instalación, todo esté ajustado tal y como lo deseamos.

Éste instalador, llamado ubiquity, es una compleja herramienta y a la vez muy potente, que nos va a hacer ésta labor lo más asequible posible. Para comprender algo más acerca de ubiquity, se recomienda encarecidamente leer cierta documentación al respecto para estar en situación y poder ver el alcance y potencia que éste nos ofrece. Para empezar y contextualizarnos con ubituity, podemos usar la referencia que se encuentra en el repo de Guadalinex, más concretamente en:

apps/ubiquity/trunk/doc/README

Después de haber leído y entendido lo que ubiquity nos ofrece e intentar echarle un vistazo a sus entrañas, puede percibirse la complejidad de dicha aplicación, por lo que, tal motivo empujó al equipo de desarrollo por simplificar la personalización de éste mediante una capa de abstracción superior al mismo, lo que se denominó como guada-ubiquity.

El código de guada-ubiquity podemos encontrarlo, en el repositorio, en:

apps/guada-ubiquity/trunk/

Guada-ubiquity es una personalización del paquete ubiquity. La orientación de este paquete es crear un instalador para Guadalinex propio y que permita mantener la transición en futuras versiones.

Ubiquity es un instalador cuya base esta programada en Python y orientada a objetos. De este modo guada-ubiquity esencialmente es una clase nueva que hereda de Ubiquity como instalador. El codigo de esta clase esta en apps/guada-ubiquity/trunk/src/frontend/guada_ui.py. Éste es el principal componente de este paquete. Como detalles importantes sobre este fichero, hágase notar el presseeding de debconf que realiza y la personalización de las pestañas que se realiza para quitar e incluir algunas necesarias.

Otra parte importante es el componente DiskPreview, cuyo código es heredado de la versión de Guadalinex GV4 y ha sido reutilizado para esta versión. DiskPreview es un previsualizador de particiones y es llamado desde guada_ui.

El en directorio

se encuentra los script de post-instalacion de la distribución. Pricipalmente los usamos para recrear la base de datos de apt y el fichero sources.list

En el directorio

apps/guada-ubiquity/trunk/src/automatically_partition

se incluye scripts para añadir funcionalidades al particionador partman. En este caso para poder proponer al usuario que instala la reutilización del espacio libre.

El frontend: guada_ui

  • Como hemos dicho antes, éste es el principal componente de este paquete, y se encuentra en
apps/guada-ubiquity/trunk/src/frontend/guada_ui.py

Para que ubiquity use nuestro guada_ubiquity debemos indicarlo añadiéndolo como se puede ver en el siguiente fichero:

apps/guada-ubiquity/trunk/src/ubiquity-init/__init__.py

En guada_ui.py podremos configurar varios aspectos del instalador como pueden ser:

  • Formato de hora, configuración del teclado, etc ..., personalizaciones que se pasarán posteriormente por preseed a debian-installer. Ejemplo:
## Ubiquity preseed ##
PRESEED = ["debconf debconf/language string es",
"d-i debian-installer/locale string es_ES.UTF-8",
"d-i clock-setup/utc boolean false",
"d-i time/zone string Europe/Madrid",
"d-i console-setup/modelcode string pc105",
"d-i console-setup/layoutcode string es",
"ubiquity languagechooser/language-name-fb select Spanish",
"ubiquity languagechooser/language-name select Spanish",
"ubiquity languagechooser/language-name-ascii select Spanish",
"ubiquity countrychooser/shortlist select ES",
"ubiquity countrychooser/countryname select Spain",
"ubiquity countrychooser/country-name string Spain",
"ubiquity console-keymaps-at/keymap select es",
"ubiquity localechooser/supported-locales multiselect es_ES.UTF-8",
"ubiquity tzconfig/gmt boolean false",
"ubiquity time/zone select Europe/Madrid",
"console-setup console-setup/variant select Spain",
"console-setup console-setup/layout select Spain"
]

  • El aspecto gráfico del instalador, imágenes, como por ejemplo, la de bienvenida. Ejemplo:
def show_intro(self):
        ## self.intro_label.set_markup("Bienvenido a Guadalinex")
        self.welcome_image.set_from_file("/usr/share/guada-ubiquity/pics/photo_1024.jpg")
        return True

  • Pasos existentes durante la instalación (steps). Existen numerosos steps ya predefinidos en ubiquity y lo único que deberemos hacer es personalizarlos a nuestro gusto, aunque también podremos crear nuestros pasos exclusivos para nuestra distribución junto con sus interfaces gráficas. La interfaz es un fichero .glade, los cuales que pueden encontrarse en
apps/guada-ubiquity/trunk/data/glade/

Como puede verse, se da por hecho el conocimiento de pyGTK del desarrollador, indispensable para llevar a cabo las personalizaciones necesarias.

Como ejemplo de personalización de guada_ui podemos hacer uso del guada-ubiquity realizado para Guadalinex Bibliotecas V5, la primera derivada de Guadalinex V5. El código puede encontrarse en: http://forja.guadalinex.org/gbiblio/apps/gbiblio-ubiquity/trunk/src/

Estudiando con detenimiento ésta modificación simple de guada-ubiquity, podremos entender sin problema alguno su estructura y funcionamiento. Además, se ha añadido un script, llamado final_fixes.sh el cual podremos encontrar en http://forja.guadalinex.org/gbiblio/apps/gbiblio-ubiquity/trunk/src/scripts/final_fixes.sh

Éste ejecutable realizará numerosas tareas en último lugar, es decir, realizará los ajustes finales requeridos para completar la instalación y configuración de nuestro nuevo sistema. Junto a éste ejecutable, en la carpeta scripts, podemos encontrar 92guadalinex-repos, el cual pone en el sources.list los repos finales que va a usar nuestra distribución.

Como consejo para poder personalizar nuestro nuevo guada-ubiquity, recomendamos encarecidamente el estudio del guada-ubiquity modificado para Guadalinex Bibliotecas v5, por su simplicidad y efectividad.