Crear un paquete Debian binario sencillito
En esta receta se muestran los pasos básicos para crear un paquete binario Debian de forma que puedas empaquetar tu programa de forma fácil y sencilla.
Asunciones
En este ejemplo voy a suponer que partes de una estructura de directorios como la siguiente:
El objetivo es empaquetar el binario “ejemplo” generado por el Makefile. El Makefile debe tener un objetivo “install” para que debhelper construya el paquete correctamente. Dicha regla debería tener una acción como esta (consulta cómo hacer un Makefile para un paquete Debian para más información):
Si no tienes el directorio “debian” es necesario que lo crees. Además, también voy a suponer que el paquete fuente se llama “ejemplo” y el paquete binario “ejemplo-package”; y que para construir “ejemplo.c” es necesaria la librería “libslab-dev”. Además, el paquete binario dependerá del programa “sl”.
Archivo debian/control
Para empaquetar este programa, el archivo “debian/control” debería quedar más o menos así:
En el campo Maintainer deben ir los datos del mantenedor del paquete y deben coincidir con los datos del cierre de una entrada en el fichero “debian/changelog”.
El campo Architecture del paquete binario indica en para qué plataforma el paquete es compatible. Con el valor “any” se asegura que, al menos, funciona para la plataforma de construcción y que para el resto debe compilarse.
Si te fijas en las dependencias del paquete binario verás que hay dependencias especiales encerradas con llaves. Estas dependencias serán resueltas por debhelper al finalizar el proceso de creación del paquete y, en función de lo que él decida, incluirá las referencias a los paquetes o no. Por ejemplo, “shlibs:Depends” son las librerías compartidas que necesita “ejemplo-package” tener instaladas. La fase “dh_shlibdeps” se encarga de detectarlas y de añadirlas, automáticamente, al control.
Archivo debian/changelog
En este archivo se registran los cambios que se hacen sobre el paquete Debian fuente. En otras palabras, es un changelog para los archivos del directorio debian.
La versión del programa es 1.0 y la del paquete Debian la 1, de ahí 1.0-1. Si se cambian sólo cosas del paquete Debian, se incrementa la versión del paquete (ej. 1.0-2, 1.0-34). Si cambia la versión del programa, pues se cambia convenientemente y se reinicia la del paquete (ej. 2.1-1).
Archivo debian/rules
Con debhelper 7 y dado que lo que se pretende empaquetar es símplemente un binario, este archivo archivo queda de la siguiente forma:
Archivo debian/copyright
Asegúrate de que existe y que contiene los datos requeridos.
Construcción
Una vez tengamos todo en orden basta con realizar lo siguiente:
La orden anterior construye el paquete binario y nos deja el resultado en “..”, o sea, en /home/pepito. También puedes construirlo con pbuilder.
Referencias
- Control files and their fields: donde se explican cada uno de los campos del archivo control y cuales son obligatorios.