Creación de paquetes .DEB

LINUX

Creación de paquetes .deb. Crea paquetes .deb instalables de forma sencilla.

Según Wikipedia, un paquete .deb es la extensión del formato de paquetes de software de la distribución de Linux, Debian GNU/Linux y derivadas (e.j.Ubuntu), y, el nombre más usado para dichos paquetes.

El programa predeterminado para manejar estos paquetes es dpkg, generalmente usando apt/aptitude aunque también hay interfaces gráficas como Synaptic, PackageKit, Gdebi o en Ubuntu Software Center (este último solo para Ubuntu).

En plan resumen rápido lo que viene siendo un programa que podemos instalar en una máquina Debian y sus distribuciones derivadas.

Árbol de directorios

Para poder crear un paquete .deb que podamos instalar, debemos crear una serie de directorios: directorio raiz con el «nombre del paquete» y dentro de este un directorio llamado «DEBIAN» (en mayúsculas) y otro con la «ruta donde se va a instalar ese paquete«.

Por ejemplo, vamos a hacer un paquete que se instale y sean nuevas fuentes para nuestro sistema, de forma que podemos ir actualizando las fuentes simplemente instalando el paquete con revisiones nuevas. Deberemos tener esta árbol de directorios creado:

Creación de árbol de directorios

Dentro de la carpeta DEBIAN tenemos 3 ficheros:

Fichero «control»

Este fichero de control debe contener los datos relativos al paquete:

Creación de fichero de control

Package: nombre del paquete
Version: versión del mismo que deberemos ir cambiando
Section: donde se almacenará en el caso de tener un repositorio FTP
Priority: indica cómo es de importante el paquete de instalación (required/important/standard/optional/extra)
Maintainer: el desarrollador del paquete
Replaces: version a la que reemplaza
Architecture: amd64, x86, all, etc...
Description: descripción corta del paquete. Si queremos una descripción larga debemos incluir otra línea, un espacio en blanco y después la descripción larga. Debe ser así para que sea legible a la hora de la creación de paquetes .deb.

Ficheros «postinst» y «postrm»

postinst: su contenido se ejecutará después de la instalación/desempaquetado
postrm: su contenido se ejecutará después del borrado del paquete
Ambos deben tener permisos >=0555 <=755

En nuestro caso no haremos nada en esos ficheros, pero podemos crear cualquier script que queramos, por ejemplo eliminar los ficheros residuales:

$ cat postrm
rm -Rf /usr/share/fonts/fuentes-personales/

(No es necesario indicar en la primera línea #!/bin/bash)

Ruta de instalación

Crearemos la ruta o el lugar donde se va a instalar nuestro paquete. En este caso la ruta donde irán las fuentes es: /usr/share/fonts/fuentes-personales

Generación del paquete

Una vez tenemos los archivos y la jerarquía indicada arriba podemos pasar a la creación de paquetes .deb ejecutando lo siguiente:

$ dpkg-deb -b fuentes-personales/

dpkg-deb: construyendo el paquete `fuentes-personales' en `fuentes-personales.deb'.

Esto nos generará el paquete .deb. Podemos revisar el contenido de la info del paquete con dpkg –info <nombre del paquete.deb>

$ dpkg --info fuentes-personales.deb 
 paquete Debian nuevo, versión 2.0.
 tamaño 4831860 bytes: archivo de control= 396 bytes.
     224 bytes,    10 líneas  *  control              
       0 bytes,     0 líneas  *  postinst             
       0 bytes,     0 líneas  *  postrm               
 Package: fuentes-personales
 Version: 1.0-3
 Section: misc
 Priority: optional
 Maintainer: Cerocode
 Replaces: 1.0-2
 Architecture: all
 Description: Pack de Fuentes Cerocode
  Este paquete instala el pack de fuentes de Cerocode.

También podemos ver el contenido que tiene el paquete .deb mediante la instrucción «dpkg»:

$ dpkg --info <nombre del paquete.deb>
Contenido del paquete creado .deb

Una vez terminada la creación de paquetes .deb ya simplemente podremos instalar el paquete con dpkg -i <paquete.deb> desde un terminal o haciendo doble click si tenemos una versión de Escritorio y comprobar que se instaló correctamente en la ruta que le indicamos en el paquete.