[Tutorial] Crear paquetes .deb desde el source

28 julio 2009 Publicado por cLimbo

Para empezar, este tutorial está dirigido a gente que quiera crear sus propios paquetes para subirlos a un repositorio personal y poder transportarlo a donde nos plazca ó simplemente quiera compartirlo con la comunidad. Yo en este tutorial simulo que creo un paquete de nginx-0.7.19 (la última snapshot de desarrollo disponible a fecha de hoy).

Lo primero será satisfacer los paquetes necesarios para la creación de un .deb;

$ sudo aptitude install autotools-dev fakeroot dh-make build-essential

Una vez instalados, podríamos usar /tmp como nuestro lugar de trabajo temporal o bien crear un directorio en nuestra home para no tener pérdidas de algún que otro archivo.

$ cd $HOME & mkdir tmp & cd tmp

Estando en nuestro directorio de trabajo temporal, copiaremos el source de nuestro objetivo (programa, soft, llamemosló ‘X’) a nuestro directorio tmp.
En caso de que nos hayamos decantado por crear un directorio temporal en nuestra home:

$ cp -r nginx-0.7.19 $HOME/tmp

En caso contrario, que hayamos elejido /tmp:

$ cp -r nginx-0.7.19 /tmp

Aclararos que la opción ‘-r’ que le incluimos a cp es para que copie recursivamente, todos los directorios en la carpeta recursivamente.

Una vez lo hayamos copiado todo, accedemos al directorio temporal de nginx (en mi caso, a cada cual el que corresponda).

$ cd $HOME/tmp/nginx-0.7.19 || cd /tmp/nginx-0.7.19

Ahora crearemos los archivos de control de Debian (para tener un control sobre la versión, el que lo mantiene, etc..).

$ dh_make --single

Y seleccionar el típo de binario o seleccionar los que sean apropiados. La opción –single es para unicamente crear un único paquete .deb (para proyectos pequeños). Para las dudas;

$ man dh_make

Ahora tendremos que editar los archivos que ha generado dh_make, cambiando algunas de las líneas de los mismos, como por ejemplo el encargado de mantener el paquete, versión, fecha, descripción etc..

Una vez editados, ya sólo nos queda crear el paquete con dpkg-buildpackage usando fakeroot.

$ sudo dpkg-buildpackage -rfakeroot

Como ya hemos terminado, tendremos el paquete en el directorio /tmp (ó $HOME/tmp)!
Un consejo, si piensas publicarlo y mantenerlo actualizado, te recomiendo que mires este post sobre como nombrar los paquetes para Ubuntu.

Escrito por cross.