Construir un paquetes debian, un archivo.deb
By: Date: septiembre 23, 2021 Categories: Consultoria y Manuales

Crear un paquete DEB es una de las cosas mas sencillas que se puede hacer, su proceso de creacion es mucho mas facil que un RPM

Empezar el proyecto

El proyecto empiza con un directorio vacio, el directorio debe contener un directorio obligado. DEBIAN en mayusculas y dentro de este directorio existira un archivo llamado control con la informacion del paquete.

La informacion es la siguiente tomada del paquete NGINX:

Package: nginx
Version: 1.18.0-6.1
Architecture: all
Maintainer: Debian Nginx Maintainers pkg-nginx-maintainers@alioth-lists.debian.net
Installed-Size: 102
Depends: nginx-core (<< 1.18.0-6.1.1~) | nginx-full (<< 1.18.0-6.1.1~) | nginx-light (<< 1.18.0-6.1.1~) | nginx-extras (<< 1.18.0-6.1.1~), nginx-core (>= 1.18.0-6.1) | nginx-full (>= 1.18.0-6.1) | nginx-light (>= 1.18.0-6.1) | nginx-extras (>= 1.18.0-6.1)
Section: httpd
Priority: optional
Homepage: https://nginx.net
Description: small, powerful, scalable web/proxy server
Nginx (“engine X”) is a high-performance web and reverse proxy server
created by Igor Sysoev. It can be used both as a standalone web server
and as a proxy to reduce the load on back-end HTTP or mail servers.
.
This is a dependency package to install either nginx-core (by default),
nginx-full, nginx-light or nginx-extras.

Para un programa como holamundo, seria lo siguiente:

Package: holahundo
Version: 1.0
Architecture: amd64
Maintainer: Last Dragon avisos@lastdragon.net
Installed-Size: 782
Depends:
Section: terminal
Priority: optional
Homepage: https://www.lastdragon.net
Description: Programa estatico de 64 bits compilado sin dependencias

El directorio del proyecto

El directorio del proyecto es una simulacion del sistema de archivos, por lo que fuera del directorio DEBIAN, todos los directorios adicionales hacen referencia a la estructura del sistema de archivos. Si se desea instalar un binario en /bin, habira que crear un dictorio llamado bin y poner adentro del el, los archivos que queremos para nuestro paquete.

Ejemplo de como debe verse el directorio del proyecto:

├── bin
│   └── holamundo
└── DEBIAN
└── control

Generacion del paquete

El programa dpkg el encargado de administrar paquetes tambien tiene la funcion de crear nuevos paquetes.

Ejemplo:
$ dpkg RutaDirectorioProyecto RutaDestinoArchivoDeb

Si se esta posicionado en el directorio proyecto ./ es el mismo directorio y ../ el directorio padre, por lo que el archivo.deb se generaria un nivel arriba del directorio proyecto

$ dpkg -b ./ ../

Resultado final

El archivo sera holamundo_1.0_amd64.deb y puede ser instalado con apt o dpkg

apt install ./holamundo_1.0_amd64.deb
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias… Hecho
Leyendo la información de estado… Hecho
Nota, seleccionando «holamundo» en lugar de «./holamundo_1.0_amd64.deb»
Se instalarán los siguientes paquetes NUEVOS:
holamundo
0 actualizados, 1 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 0 B/518 kB de archivos.
Se utilizarán 801 kB de espacio de disco adicional después de esta operación.
Des:1 /home/lastdragon/holamundo_1.0_amd64.deb holamundo amd64 1.0 [518 kB]
Seleccionando el paquete holamundo previamente no seleccionado.
(Leyendo la base de datos … 162938 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar …/holamundo_1.0_amd64.deb …
Desempaquetando holamundo (1.0) …
Configurando holamundo (1.0) …

One thought on “Construir un paquetes debian, un archivo.deb

  1. Usa: Mozilla Firefox Mozilla Firefox 96.0 en Ubuntu Linux Ubuntu Linux - Detectado...

    Wooooww!!! que genial!!!! esto me va a servir para distribuir configuraciones, instaladores muchas muchas muchas gracias!

    ### contenido del directorio ####
    # tree paquete/
    paquete/
    ├── DEBIAN
    │   └── control
    └── etc
    └── socks-infra.conf

    2 directories, 2 files

    ##### INSTALANDO ###
    # sudo dpkg -i confsocks_1.0_amd64.deb
    [sudo] password for rcampove:
    Selecting previously unselected package confsocks.
    (Reading database … 240868 files and directories currently installed.)
    Preparing to unpack confsocks_1.0_amd64.deb …
    Unpacking confsocks (1.0) …
    Setting up confsocks (1.0) …

    ### archivo de conf en su sitio ###
    # ls -l /etc/socks-infra.conf
    -rw-rw-r– 1 rcampove rcampove 10503 ene 27 14:55 /etc/socks-infra.conf

Responder a Rafael Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *