Herramientas de usuario

Herramientas del sitio


aula:linux_para_novatos:crear_un_paquete_.deb

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:

  1. fichero script → en → panasonic-P2_14-04/usr/bin
  2. fichero menú → en → panasonic-P2_14-04/usr/share/menu
  3. fichero aplicacion de escritorio → en → panasonic-P2_14-04/usr/share/applications
  4. fichero icono → en → panasonic-P2_14-04/usr/share/pixmaps
  5. 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

aula/linux_para_novatos/crear_un_paquete_.deb.txt · Última modificación: 2025/01/22 02:02 por 127.0.0.1