Creando paquetes deb desde código fuente con checkinstall

targzSon raras las veces que necesitaremos instalar software que no esté disponible en los repositorio de nuestra distribución, y es aun más raro todavía que cuando necesitemos hacer esto tengamos que instalar el software desde código fuente ya que normalmente podremos encontrar un paquete ya compilado.

En cualquier caso, si por la razón que sea queremos o necesitamos hacerlo, el mayor problema que nos encontramos es que el software instalado de esta manera queda fuera de la gestión de nuestro gestor de paquetes, lo cual hace que sea más complicado llevar un registro de qué software tenemos instalado en nuestro sistema.

Para hacernos la vida más sencilla resulta mucho más conveniente usar checkinstall para crear un paquete deb a partir del código fuente, y realizar la instalación desde ahí.

Como ejemplo pongamos que queramos instalar la última versión de ettercap en un Ubuntu 12.10. En los repositorios tenemos la versión 0.7.4.2, pero en la página de ettercap ya está la 0.7.5.1 como código fuente en un archivo tar.gz.

Descargamos el paquete y lo descomprimimos por ejemplo en ~/Descargas/ettercap-0.7.5.1.

Si aun no tenemos instalado checkinstall, lo instalamos:

sudo apt-get install checkinstall

Mirando las instrucciones que vienen dentro del paquete tar.gz de ettercap vemos que para instalarlo necesitaríamos hacer lo siguiente:

cd ~/Descargas/ettercap-0.7.5.1
mkdir build
cd build
cmake ../
make
sudo make install

El último comando es el que realiza la instalación, y lo que vamos a hacer es reemplazarlo por checkinstall para que nos cree el paquete deb:

cd ~/Descargas/ettercap-0.7.5.1
mkdir build
cd build
cmake ../
make
sudo checkinstall

Al ejecutar el checkinstall nos mostrará un menú donde podremos definir varias opciones para la creación del paquete:

Opciones de checkinstall

Podemos dejar las opciones por defecto, pero para ser un poco más organizados deberíamos al menos rellenar los campos 2 y 3, que indican el nombre y la versión del paquete. En este caso el nombre es ettercap y la versión 0.7.5.1:

Opciones checkinstall

Al pulsar ENTER el software se instalará y nos creará un paquete en el directorio actual.

La diferencia entre haber usado checkinstall en vez de make install es, aparte de que ya dispongamos de un paquete deb para reinstalar más adelante sin tener que volver a compilar (o para instalar en otros equipos), que el software aparece en la lista de paquetes instalados de apt:

apt-cache

Si más adelante quisiéramos desinstalarlo no necesitaríamos entrar en el directorio con las fuentes para hacer un sudo make uninstall, nos valdría con usar sudo apt-get remove igual que si se tratase de un paquete instalado desde los repositorios.