O pacote APT contém actualmente duas secções, o método dselect do APT e a interface de utilizador de linha de comandos apt-get. Ambos disponibilizam uma maneira de instalar e remover pacotes assim como descarregar novos pacotes da Internet.
O sistema de pacotes Debian tem uma grande quantidade de informação associada a cada pacote para ajudar a assegurar que este se integra de modo limpo e fácil no sistema. A mais proeminente das suas funcionalidades é o sistema de dependências.
O sistema de dependências permite a programas individuais fazerem uso de elementos partilhados no sistema tais como as bibliotecas. Facilita a colocação de porções de um programa usadas raramente em pacotes separados para reduzir o número de coisas que é necessário instalar ao utilizador médio. Também permite opções em agentes de transporte de mail, servidores X e mais.
O primeiro passo para compreender o sistema de dependências é pegar no conceito de uma dependência simples. O significado de uma dependência simples é que um pacote requer outro pacote seja instalado ao mesmo tempo para funcionar correctamente.
Por exemplo, mailcrypt é uma extensão do emacs que ajuda a encriptar mail com GPG. Sem o GPGP instalado o mailcrypt é inútil, então o mailcrypt tem uma dependência simples do GPG. Também, porque é uma extensão do emacs, tem uma dependência simples do emacs, e sem o emacs é completamente inútil.
A outra dependência importante a compreender é a dependência de conflito. Significa que um pacote, quando instalado com outro pacote, não irá funcionar e pode ser extremamente prejudicial para o sistema. Como exemplo considere um agente de transporte de mail como o sendmail, exim ou qmail. Não é possível ter dois agentes de transporte de mail instalados porque ambos precisam de escutar na rede para receberem mail. Tentar instalar dois irá danificar seriamente o sistema, por isso todos os agentes de transporte de mail têm uma dependência de conflito com todos os outros agentes de transporte de mail.
Como uma complicação adicional existe a possibilidade de um pacote fingir ser outro pacote. Considere que exim e sendmail para muitas intenções são idênticos, ambos entregam mail e compreendem uma interface comum. Por isso, o sistema de pacotes tem um modo para eles declararem que são ambos mail-transport-agents. Portanto, ambos exim e sendmail declaram que disponibilizam um mail-transport-agent e outros pacotes que precisam de um agente de transporte de mail dependem de um mail-transport-agent. Isto pode adicionar uma grande confusão quando se tenta corrigir pacotes manualmente.
Em qualquer altura uma única dependência pode ser satisfeita por pacotes que já estão instalados ou podem não estar. O APT tenta ajudar a resolver problemas com dependências ao disponibilizar um número de algoritmos automáticos que ajudam a selecionar os pacotes para instalação.