# Dpkg

El programa dpkg (abreviatura de Debian package) és la base del sistema de gestió de paquets de Debian GNU/Linux, gestiona arxius .deb (paquets binaris). Principalment, els extreu, els analittza, els descomprimeix, els gestiona i els elimina. Va ser creat per Ian Jackson el 1993; és semblant al RPM de Red Hat.
dpkg és una eina de baix nivell, per tant, es necessita una eina d'alt nivell per treure els paquets de llocs remots o resoldre les dependències. Debian usa l'APT (Advanced Packaging Tool) per fer això, també es poden usar eines més amigables que empren la interfície gràfica d'usuari com Synaptic o Adept. Aquestes darreres disposen de menys opcions.

## Creant dpkg

Els dpkgs se solen construir amb l'ordre dpkg-buildpackage. Aquesta llegeix diversos fitxers per saber com s'ha de construir el paquet. Aquests fitxers es troben al subdirectori debian de l'arbre de codi. El sistema de paquets dpkg es basa en dependències. Podent-se unir programes i biblioteques en un paquet de programari fàcil d'instal·lar, fins i tot quan s'han desenvolupat per separat. Conferint un alt nivell de control sobre com i què instal·la l'usuari
Es necessiten quatre fitxers. El fitxer copyright conté les condicions de la llicència. El fitxer control conté el nom del paquet, la descripció i les dependències. El fitxer rules és un Makefile que té les normes per construir el paquet Debian. Els programes com debhelp se solen cridar des del fitxer rules. A més a més, alguns paquets inclouen pegats del CDBS, per simplificar el fitxer rules. Finalment hi ha el fitxer changelog, el qual conté el changelog. La majoria de paquets inclouen altres fitxers per fer diverses coses.
Quan un paquet s'ha construït, es poden buscar problemes mitjançant l'eina lintian.

## Eines de dpkg

Debian té una sèrie d'eines que són necessàries per construir un paquet:
* dpkg-source empaqueta i desempaqueta els fitxers de codi font d'un paquet Debian.
* dpkg-gencontrol llegeix la informació d'un arbre font Debian desempaquetat i genera un paquet binari de control, generant una entrada per aquest al fitxer debian/files
* dpkg-shlibdeps calcula les dependències dels executables respecte a les llibreries
* dpkg-genchanges llegeix la informació d'un arbre font Debian desempaquetat i construït, generant un fitxer de control dels últims canvis (un .changes).
* dpkg-buildpackage és un script de control que es pot usar per automatitzar la construcció del paquet.
* dpkg-distaddfile afegeix una entrada al fitxer debian/files
* dpkg-parsechangelog llegeix el fitxer de canvis changelog d'un arbre font de Debian desempaquetat i genera una sortida amb la informació d'aquests canvis, convenientment preparat.

## Referències

* ↑ «The dpkg Command in Linux - A Beginners Reference | DigitalOcean». Digital Ocean, 03-08-2022. [Consulta: 16 gener 2024].
* 1 2 Barrios Dueñas, Joel. «Cómo utilizar dpkg - Alcance Libre». Alcance Libre, 29-05-2008. [Consulta: 17 gener 2024].
* ↑ Thrash. «¿Nuevo gestor de paquetes? - MuyLinux». Muy Linux, 04-12-2009. [Consulta: 16 gener 2024].
* ↑ «Comparison of major Linux package management systems». Linux Config, 28-11-2020. [Consulta: 16 gener 2024].
* ↑ Tozzi, Chris. «Ubuntu snap vs. apt: Which package manager to use and when | TechTarget». Techtarget, 06-06-2022. [Consulta: 16 gener 2024].
* ↑ J.Pomeyrol. «Ubuntu quiere deshacerse del repositorio de socios... que para eso está la Snap Store - MuyLinux». Muy Linux, 28-01-2022. [Consulta: 16 gener 2024].
* ↑ Das, Ankush. «Flatpak vs. Snap: 10 Differences You Should Know». It's FOSS, 25-01-2023. [Consulta: 16 gener 2024].
* ↑ «Debian Linux founder Ian Murdock would have been amazed at its legacy». Zdnet, 21-08-2023. [Consulta: 16 gener 2024].

## Notes

* ↑ Posteriorment a apt, es varen crear altres solucions com Snap o Flatpak, tipus de paquets que no han de resoldre dependencies i es consideren universals en poder-se instal·lar en qualsevol distribució Linux. Els paquets contenen tot el que és necessari per a executar-se. Els paquets Snap i Flatpak també es poden instal·lar de manera gràfica amb la Snap-Store i Flathub respectivament.

## Enllaços externs

* Paquet Debian del dpkg