Être capable d'installer et de supprimer des paquets, c'est formidable, mais le programme basique chargé de faire cela (connu sous le nom de dpkg) ne fait que cela et rien de plus. C'est très bien si vous téléchargez un ou deux paquets à la main, mais cela devient vite fatiguant quand vous essayez de gérer un grand nombre de paquets. De plus, si un nouveau paquet intéressant nécessite des programmes que vous n'avez pas encore installés, vous devez télécharger les nouveaux paquets requis à la main. Et si vous décidez par la suite de supprimer le paquet auparavant intéressant, les paquets additionnels vont rester sur votre système et occuper de la place sur vos disques à moins que vous ne les supprimiez vous-même.
Évidement, toutes ces opérations sont fastidieuses, et donc la plupart des systèmes de gestion de paquets sont accompagnés de programmes qui se chargent de tout cela à votre place. apt est la base commune sur laquelle sont construits ces programmes : en plus d'aptitude, des programmes comme synaptic et apt-watch utilisent apt.
apt fonctionne grâce à une liste des paquets qui peuvent être téléchargés depuis Debian sur votre ordinateur. Cette liste est utilisée pour trouver les paquets qui ont besoin d'être mis à jour et pour installer de nouveaux paquets. apt peut aussi résoudre de nombreux problèmes de dépendances automatiquement : par exemple, quand vous choisissez d'installer un paquet, il va rechercher tous les paquets supplémentaires requis et les installer en même temps.
Avec un gestionnaire de paquet basé sur apt, tel qu'aptitude, vous aller typiquement effectuer trois opérations de base : mettre à jour la liste des paquets disponibles en téléchargeant de nouvelles listes depuis les serveurs Debian, sélectionner quels paquets doivent être installés, mis à jour ou supprimés, et enfin mettre à exécution votre sélection en procédant réellement aux installations, suppressions, etc.
Les gestionnaires de paquets basés sur apt lisent la liste des “sources” (dépôt de paquets Debian) dans le fichier /etc/apt/sources.list. Le format et le contenu de ce fichier sont hors de la portée de ce document, mais sont décrits dans la page de manuel sources.list(5).