Le système de gestion de paquets de Debian intègre de nombreuses
informations associées à chaque paquet afin de garantir qu'il s'intègre
proprement et facilement sur le système. Une des fonctionnalités les plus
immédiatement visibles est le système de gestion des dépendances.
Le système de gestion des dépendances permet aux programmes individuels de
partager des éléments du système, tels que les bibliothèques. Il permet
d'isoler dans des paquets spécifiques certaines parties moins utilisées des
programmes afin de limiter le nombre d'éléments que l'utilisateur ordinaire
a besoin d'installer. Ce système de gestion des dépendances permet également
d'effectuer des choix parmi les divers agents de transport de courrier
électronique, les serveurs X et d'autres composants du système.
La première étape de compréhension de la gestion de dépendances est
d'examiner le fonctionnement d'une dépendance simple. Une dépendance simple
est le cas où un paquet donné a besoin qu'un autre paquet soit installé
simultanément pour pouvoir fonctionner correctement.
Par exemple, mailcrypt est une extension d'Emacs qui permet de gérer le
courrier électronique chiffré avec GPG. Si GPG n'est pas installé, mailcrypt
est inutile. Donc le paquet mailcrypt a une dépendance simple sur GPG. De
plus, étant une extension d'Emacs, il a une dépendance simple sur emacs sans
lequel il est totalement inutile.
Un autre type de dépendance importante est la dépendance en conflit. Cela
signifie qu'un paquet ne fonctionne pas lorsqu'il est installé en même temps
qu'un autre paquet donné, ce qui peut même être dommageable pour le
système. Un exemple est par exemple constitué par les agents de transport de
courrier tels que sendmail, exim ou qmail. Il n'est pas possible d'installer
deux agents de transport de courrier simultanément puisque les deux ont
besoin d'être à l'écoute sur le réseau pour recevoir le courrier
électronique. Installer deux programmes de ce type sur le même système
pourrait conduire à des pertes de données, ce qui explique que tous les
agents de transport de courrier électronique soient établis comme étant en
conflit les uns avec les autres.
Il existe également la possibilité pour un paquet donné de prétendre être un
autre paquet. Par exemple, exim et sendmail sont analogues sur de nombreux
aspects ; ils servent tous deux à acheminer le courrier électronique et leur
interface d'utilisation est la même. Pour cette raison, le système de
gestion des paquets leur fournit la possibilité d'indiquer qu'ils sont
chacun un agent de transport de courrier (« mail transport agent ») en
indiquant qu'ils fournissent (« Provides ») « mail-transport-agent ». Ainsi,
un paquet qui a besoin de cette fonctionnalité peut dépendre simplement d'un
paquet « mail-transprot-agent ». Cette fonctionnalité utile peut toutefois
rendre la correction de certains défauts des paquets plus complexe.
À un instant donné, une dépendance donnée peut être ou pas remplie par des
paquets installés ou pas encore installés. APT tente donc de résoudre les
problèmes de dépendances par l'intermédiaire d'un certain nombre
d'algorithmes automatiques qui simplifient le choix des paquets à installer.