Lo primero y antes de empezar nos haremos la siguiente pregunta:
¿Qué es un paquete .deb?
Sabiendo esta premisa, podemos continuar. Vamos a tomar como ejemplo 4nonimizer
para poder crear un paquete .deb autoinstalable del mismo.
Lo descargamos de https://github.com/Hackplayers/4nonimizer.git y una vez tenemos la carpeta con todo el contenido de 4nonimizer procedemos a crear la jerarquía de directorios donde queremos que se aloje 4nonimizer, es decir, si queremos que se descomprima e instale en /opt/ crearemos una carpeta que llamaremos deb y dentro de ella /opt/ y dentro de la misma meteremos 4nonimizer :
Fichero Control
Este fichero contendrá los datos del paquete, vamos uno a uno:
- Package: nombre del paquete
- Priority: indica cómo de importante es el paquete de instalación. Están los siguientes modos:
Nosotros ponemos 'optional'.
- Section: es donde se va a almacenar el paquete en un repositorio FTP puede ser misc , dev , etc...
- Maintainer: los que desarrollan o mantienen el paquete
- Architecture: como su nombre indica la arquitectura amd64, x86 , all , etc...
- Version: la versión del mismo
- Replaces: en caso de reemplazar una versión anterior ahí se pondrá que versiones reemplaza.
- Depends: las dependencias de las cuales depende que se instalaran antes deinstalar el paquete. En nuestro caso no tiene nada porque ya se las descarga desde el propio Python en el script de 4nonimizer, y era redundante.
- Description: una descripción corta del paquete, debajo de este campo se aprecia un espacio y luego una descripción mas larga del paquete, esto esta hecho así, es obligatorio ese espacio antes de la descripción larga.
Nosotros queremos que, además de eso, se ejecute el 4nonimizer install, ¿cómo hacemos eso? con los diferentes ficheros de ejecución que nos permite un paquete debian y que son los siguientes:
En nuestro caso solo generaremos 2 ficheros el postinst (se ejecuta después de la instalación/desempaquetado) y el postrm (se ejecuta después del borrado)
Fichero Postinst:
Fichero Postrm
Sencillo... no contienen nada que sea tampoco difícil de entender.
También he de decir que estos ficheros tienen que tener unos permisos de ejecución adecuados. Yo suelo poner 755, pero ahí tenéis lo que se puede poner:
Una vez acabado la jerarquíaa de nuestro paquete , vamos a crear el paquete propiamente dicho, ejecutamos lo siguiente:
Y esto nos generara el propio paquete. Después miraremos el contenido de la info del paquete con dpkg --info [package .deb=""]:
También podemos ver el contenido del .deb haciendo dpkg --contents
y nos listará el contenido.
Una vez finalizado todo ésto podemos proceder a su instalación haciendo un dpkg -i
Espero que este mini tutorial os sirva, y os ayude en la generación de vuestro propios paquetes .deb ¡
Un saludo a Todos!
Fuentes:
https://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html#s-priority
Buen artículo, yo tambien me he "peleado" para empaquetizar .debs y de tanto buscar me encontré con fpm (https://github.com/jordansissel/fpm).
ResponderEliminarCon fpm puedes crear Debs, RPMs y un montón de paquetes de forma fácil, en su momento escribí un mini howto para crear DEBs con esta herramienta: https://fortu.io/como-crear-paquetes-debian/
Este articulo puede complementar mi conocimiento sobre los .Debs, gracias!