Daily Archives: 10/04/2008

Creando Paquetes DEB Con Alien

Ha salido una nueva versión de Email, ya tiene soporte para TLS, por lo tanto, ya se puede usar con cuentas de Gmail.

Me costó compilarlo pero al final lo conseguí, los años de Gentoo no pasan en valde. El caso es que un par de amigos mios, no lo conseguían así que me propuse construir el paquete deb para pasarselo (en verdad me lo pidio Miguel Ángel a mi no se me hubiera ocurrido…).

Hay un buen manual del desarrollador de Debian donde explica como construir un paquete deb, pero es complicado. Use alien en su lugar.

El primer paso es construir el paquete desde el fuente.

./configure --prefix=/tmp/email
make && make install

Hemos pasado el parámetro prefix para indicar que todos los archivos que genere el paquete cuelgan de /tmp/email.

Una vez el paquete está compilado nos situamos en esa carpeta y metemos todos los archivos en un tar.gz:

tar czvf email-3.0.2.tar.gz

Para poder invocar a alien, necesitamos ser root, si no tenemos cuenta de administrador usamos:

fakeroot

Esto nos dará una shell de psudo-root para poder ejecutar alien, ya sólo nos queda construir el paquete deb.

alien email-3.0.2.tar.gz

Y ya tenemos el paquete deb listo para usar en cualquier distribución Debian.

Problema: Cuando se instala el paquete con

dpkg -i email-3.0.2.deb

apt lo instalará en la raiz del disco y todas las referencias del binario a sus archivos lo seran a donde se instaló en el sistema anfitrión. Esto viene a decir, que no funciona bien, porque por ejemplo el buscaba su fichero .conf en /tmp/email y estaba en /email/email.conf.

La solución fue hacer las cosas a su manera. En lugar de compilar contra /tmp lo hice contra la raiz de forma que todo quedó en su sitio. Luego copié ese árbol de archivos a /tmp y generé el paquete. De esta forma, cuando lo instalé todo fue a su sitio y el programa encontraba todos sus archivos.

Esta solución es válida aunque algo artesanal y sólo sirve si el paquete no tiene muchos archivos. Voy a ponerme a aprender a hacer paquetes deb siguiendo la receta original por si un día me encuentro con algo más complejo…