Una forma sencilla de crear un paquete .deb a partir del código fuente es mediante la utilidad checkinstall, disponible en los respositorios.

Para aquellos casos en los que la compilación del código y la instalación sigue los conocidos comandos:

$ ./configure
$ make
$ sudo make install

Bastará sustituir el último paso por:

$ sudo checkinstall

Como ejemplo, podemos crear un .deb a partir del código fuente de libsodium, una librería necesaria para compilar dnscrypt.

Descargamos la última versión y comprobamos la firma:

$ wget https://download.libsodium.org/libsodium/releases/libsodium-0.4.5.tar.gz
$ dig +dnssec +short txt libsodium-0.4.5.tar.gz.download.libsodium.org
"7ad5202df53eeac0eb29b064ae5d05b65d82b2fc1c082899c9c6a09b0ee1ac32"
$ shasum -a 256 libsodium-0.4.2.tar.gz
7ad5202df53eeac0eb29b064ae5d05b65d82b2fc1c082899c9c6a09b0ee1ac32  libsodium-0.4.5.tar.gz

(Otra opción sería comprobar el fichero .sig disponible también para descargar desde su página.)

Descomprimimos el fichero y lo compilamos:

$ tar xzf libsodium-0.4.5.tar.gz
$ cd libsodium-0.4.5/
$ ./configure
$ make -j2
$ make check

Ahora es cuando creamos el paquete .deb:

$ sudo checkinstall

Nos pedirá que añadamos una pequeña descripción del paquete y que confirmemos una serie de datos relacionados con el mismo. Si quisiéramos apadrinar un paquete, sería tan sencillo como poner nuestro nombre, forma de contacto y dirección de descarga.

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
           Este software es distribuído de acuerdo a la GNU GPL


The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]: n

Por favor escribe una descripción para el paquete.
Termina tu descripcion con una linea vacia o con EOF.
>> libsodium is an easy-to-use crypto library. Its goal is to provide all of the core operations needed to build higher-level cryptographic tools.
>>

*****************************************
**** Debian package creation selected ***
*****************************************

Este paquete será creado de acuerdo a estos valores:

0 -  Maintainer: [ nacho AT ignaciocano DOT com ]
1 -  Summary: [ libsodium is an easy-to-use crypto library. Its goal is to provide all of the core operations needed to build higher-level cryptographic tools. ]
2 -  Name:    [ libsodium ]
3 -  Version: [ 0.4.5 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ i386 ]
8 -  Source location: [ libsodium-0.4.5 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ libsodium ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Introduce un número para cambiar algún dato u oprime ENTER para continuar:

Si todo ha ido bien, ya tendremos el paquete creado e instalado. Si quisiéramos eliminarlo:

$ sudo dpkg -r libsodium

Actualizado el 26 de abril de 2015

Si no queremos que se instale justo después de crear el paquete, tenemos varias opciones:

  • Utilizar el argumento --install=no
  • Editar el fichero de configuración /etc/checkinstallrc y cambiar INSTALL=1 por INSTALL=0

Alternativamente, podemos crear el paquete de forma automatizada, pasando la información en forma de argumentos. Por ejemplo:

$ sudo checkinstall
    --default \
    --install=no \
    --maintainer="nacho AT ignaciocano DOT com" \
    --pkgname=libsodium \
    --pkgversion=0.4.5 \
    --pkgrelease=1 \
    --pkglicense=GPL \
    --pkggroup=checkinstall \
    --pkgarch=i386 \
    --pkgsource=libsodium-0.4.5 \
    --pkgaltsource= \
    --requires= \
    --provides=libsodium

La descripción del paquete se toma del contenido del fichero description-pak, que deberemos crear previamente.

Podemos comprobar la información del paquete mediante dpkg -I (o rpm -qi si es un .rpm):

$ dpkg -I libsodium_0.4.5-1_i386.deb
 paquete debian nuevo, versión 2.0.
 tamaño 388804 bytes: archivo de control= 383 bytes.
       0 bytes,     0 líneas     conffiles
     332 bytes,     9 líneas     control
 Package: libsodium
 Priority: extra
 Section: checkinstall
 Installed-Size: 2492
 Maintainer: nacho AT ignaciocano DOT com
 Architecture: i386
 Version: 0.4.5-1
 Provides: libsodium
 Description: libsodium is an easy-to-use crypto library. Its goal is to provide all of the core operations needed to build higher-level cryptographic tools.

Ya que estamos, también he creado un .deb para dnscrypt. Si queréis ahorraros el trabajo, aquí tenéis ambos paquetes .deb:

» libsodium_0.4.5-1_i386.deb » dnscrypt-proxy_1.4.0-1_i386.deb

Referencias

» Checkinstall, crear paquetes .deb fácilmente a partir del código » How to compile and install DNScrypt » Checkinstall README


Entradas relacionadas


Published

Category

admin

Tags

Contacto