Tabla de Contenidos
Cómo crear un paquete deb
Si quiero crear un .deb personalizado para, por ejemplo, instalar mis scripts bash en en la carpeta bin y lanzarlos desde el menú como un programa, o copiar alguna imágen en alguna otra ruta, por ejemplo, que me instale fondos de pantalla nuevos en /usr/share/backgrounds. ¿Como lo hariamos?. Para eso vamos a utilizar el comando dpkg.
dpkg
El programa dpkg es la base del sistema de gestión de paquetes de Debian GNU/Linux. Fue creado por Ian Jackson en 1993. Se utiliza para instalar, quitar, y proporcionar información sobre los paquetes.deb.
Dpkg es en sí misma una herramienta de bajo nivel; se necesita un frontal de alto nivel para traer los paquetes desde lugares remotos o resolver conflictos complejos en las dependencias de paquetes. Debian cuenta con apt (Advanced Packaging Tool) para esta tarea.
Herramientas Dpkg
Debian posee una serie de herramientas que es necesario llamar para construir un paquete:
- dpkg-source - Empaqueta y desempaqueta los archivos fuentes de un paquete Debian.
- dpkg-gencontrol - Lee la información de un árbol fuente Debian desempaquetado y genera un paquete binario de control, generando una entrada para éste en el fichero debian/files.
- dpkg-shlibdeps - Calcula las dependencias de ejecutables respecto a librerías.
- dpkg-genchanges - Lee la información de un árbol fuente Debian desempaquetado y ya construido, generando un fichero de control de los últimos cambios (un.changes).
- dpkg-buildpackage - Es un script de control que se puede utilizar para automatizar la construcción del paquete.
- dpkg-distaddfile - Añade una entrada de un fichero a debian/files.
- dpkg-parsechangelog - Lee el fichero de cambios changelog) de un árbol fuente Debian desempaquetado y genera una salida con la información de estos cambios, convenientemente preparada.
Ejemplo
Por ejemplo, yo tengo un script llamado “PANASONIC-P2_cinelerra-HV” que quiero instalar en el sistema mediante un fichero.deb.
1. Creamos un directorio de trabajo
Creamos un directorio con el nombre del paquete que queremos, en mi caso quiero un paquete con el nombre panasonic-P2 y la indicación de _14.04, porque lo voy a instalar en Ubuntu 14.04
mkdir panasonic-P2_14-04
2.Recrear la estructura de directorios destino
Sobre ese directorio recien creado, tenemos que recrear la estructura destino que queremos utilizar, en nuestro ejemplo los directorios serian los siguientes:
- /usr/bin
- /usr/share/menu
- /usr/share/applications
- /usr/share/pixmaps
- /DEBIAN
Abrimos un terminal y creamos los directorios
mkdir panasonic-P2_14-04/usr/bin mkdir panasonic-P2_14-04/usr/share/menu mkdir panasonic-P2_14-04/usr/share/applications mkdir panasonic-P2_14-04/usr/share/pixmaps mkdir panasonic-P2_14-04/DEBIAN
3. Copiamos los ficheros a su directorio de destino
Ahora tendremos que copiar todos los ficheros que necesitemos a sus directorios de destino, en nuestro ejemplo:
- fichero script → en → panasonic-P2_14-04/usr/bin
- fichero menú → en → panasonic-P2_14-04/usr/share/menu
- fichero aplicacion de escritorio → en → panasonic-P2_14-04/usr/share/applications
- fichero icono → en → panasonic-P2_14-04/usr/share/pixmaps
- fichero de control → en → panasonic-P2_14-04/DEBIAN
Descarga los ficheros para este ejemplo en tu directorio de usuario, y después copíalos en las diferentes carpetas abriendo un terminal.
cp PANASONIC-P2_cinelerra-HV panasonic-P2_14-04/usr/bin cp PANASONIC-P2 panasonic-P2_14-04/usr/share/menu cp PANASONIC-P2.desktop panasonic-P2_14-04/usr/share/applications cp panasonic_p2_jk.png panasonic-P2_14-04/usr/share/pixmaps cp control panasonic-P2_14-04/DEBIAN
4. Cambiamos el propietario
Ahora cambiamos el propietario de ese directorio
sudo chown -Rv root.root panasonic-P2_14-04
5. Creamos el paquete deb
Creamos el paquete en formato .deb
sudo dpkg -b panasonic-P2_14-04
6. Instalamos el paquete deb
Y ahora instalamos el paquete .deb
sudo dpkg -i panasonic-P2_14-04.deb
Enjoy!
Publicado por J.C. Ballesteros