Descripción funcional de GCS - guadalinex-archive/guadalinex-v5 GitHub Wiki
Descripción funcional de GCS
- GCS es una herramienta para crear metapaquetes de configuración y metapaquetes de forma muy sencilla. Se apoya en los siguientes pilares fundamentales:
- Sistema de paquetes de Debian: este sistema proporciona realmente la base sobre la que se sustenta GCS. GCS constituye una capa de abstracción para generar, de forma más sencilla, paquetes Debian con una estructura y objetivos concretos. Desde GCS se pueden gestionar las dependencias a los paquetes hijo, la instalación de ficheros en rutas concretas, la instalación de ficheros de configuración que sustituyan a los de otros paquetes, la ejecución de scripts de pre/post-instalación, etc.
- “divert”: Otro de los puntos clave de GCS es “divert”, que se utiliza para gestionar las configuraciones de otros paquetes. Hay que tener en cuenta que el sistema de paquetes de Debian impide que un paquete sobreescriba la configuración de otro, por lo que no se puede generar metapaquetes de configuración usando el sistema de paquetes Debian tal cual.
Mediante “divert”, se pueden generar metapaquetes de configuración que sí llevan a cabo la configuración de otros paquetes instalados en el sistema. Para gestionar estas configuraciones, “divert” funciona de la siguiente manera: durante la instalación de un metapaquete de configuración se ejecuta el script de postinstalación, que, para cada fichero que configura, hace una llamada a “divert”. Esto indica al sistema DPKG que, a partir de ese momento, dicho fichero de configuración deja de pertenecer al paquete original para pasar a pertenecer al nuevo. De esta manera, el control de dicho fichero pasa al metapaquete de configuración y así evitamos problemas ante cambios en el mismo por parte del paquete original. Por otra parte, dicho fichero original se renombrará, se instalará el nuevo y se creará un enlace simbólico que tendrá el nombre del fichero original y que apuntará al nuevo. El proceso inverso se llevará a cabo durante la desinstalación del metapaquete de configuración, donde tiene lugar la restauración del fichero original.