Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > debian > Dividiendo un paquete Debian

Dividiendo un paquete Debian

Introducción

Desde hace un tiempo tengo un paquete Debian con algunos programas, archivos de configuración y ejemplos que utilizo para ayudarme en la administración de taquiones, y he llegado a un punto en el que necesito parte de él fuera del servidor, disponible en otras máquinas que utilizo diariamente.

El problema es que instalar el paquete en otra máquina implica incorporar servicios que no necesito en ella, así como cambios en la configuración que no me convienen en modo alguno, por lo que me decidí a dividir el paquete original en varios más controlables.

Lo primero fue ver que necesita un paquete para instalar en el servidor (taquiones-admin) y otro para instalar en los clientes (taquiones-utils), y que ambos hacían uso de una librería Perl común, por lo que opté por crear un tercero (libtaquiones-admin-perl), pero manteniendo el mismo fuente para ambos y la misma entrada en el repositorio. Los cambios se han efectuádo sobre todo en los archivos de construcción de paquetes Debian bajo el directorio debian/ y me ha sido de mucha ayuda tener claros algunos conceptos.

  • La raíz de todo es un paquete fuente que hay que definir en debian/control bajo la etiqueta 'Source:'.
  • Todos los paquetes comparten el mismo registro de cambios debian/changelog, puesto que parten del mismo fuente, y en rigor no se deben considerar como paquetes independientes.
  • Las herramientas debhelper generalmente no renombran nada, y aunque es posible usar archivos .install y .dirs para distribuir lo instalado desde el fuente original, es normal que lleguen a compartirse archivos como README entre todos los paquetes binarios resultantes.

Por cierto, la claridad no ha aparecido en un único sitio, ya quisiera; por contra he tenido que ir descubriéndola según me encontraba con problemas, y aunque la red está plagada de recursos no siempre han estado a la altura de las circunstancias, sobre todo por la antigüedad de muchos de ellos.

La forma de proceder es la siguiente:

  1. Se construye el software con las herramientas necesarias según el caso. Unos usarán compiladores de C y yo me limito a construir los módulos Perl con cierto filtro de mi cosecha, y asegurándome de que las páginas de manual y los programas (scripts) están incluídos en el proyecto.
  2. Se procede a instalar, empleando una raíz común, en los mismos directorios en los que debería aparecer en una instalación real. En mi caso siempre utilizo los estándar de Debian con lo que tengo varios pasos adelantados.
  3. Se deben crear ...

PENDIENTE DE COMPLETAR

En el fuente original

No ha sido necesaria tocar la parte de la instalación. El archivo Makefile contiene lo mismo de antes, y debe tener en cuenta que existe un lugar en el sistema de archivos que usar como raíz de la instalación, y que éste puede ser (y lo será) cambiado en tiempo de ejecución. En mi caso he incluído el valor de $DESTDIR como prefijo para todas las rutas.

En los archivos debian/

PENDIENTE DE COMPLETAR

Referencias y enlaces

  • Múltiple changelogs ?. Hilo en el que se resuelve la duda de si debemos incluír o no un registro de cambios por cada paquete final ó comparten todos uno.