A APT é uma coleção de ferramentas distribuídas em um pacote chamadoapt. Uma parte significativa da APT é definida em uma biblioteca de funções emC++; a APT também inclui programas de linha de comando para lidar com pacotes, que utilizam a biblioteca. Três desses programas sãoapt,apt-get eapt-cache. Eles são comumente usados em exemplos porque são simples e onipresentes. O pacoteapt é de prioridade "importante" em todas as versões atuais do Debian e, portanto, está incluído em uma instalação padrão do Debian. A APT pode ser considerada umfront-end para odpkg, mais amigável do que o antigo front-enddselect. Enquanto odpkg executa ações em pacotes individuais, a APT gerencia as relações (especialmente dependências) entre eles, bem como o fornecimento e o gerenciamento de decisões de versionamento de nível superior, como rastreamento de lançamentos esupressão de atualização.
A APT é frequentemente aclamada como um dos melhores recursos do Debian,[por quem?][5][6][7][8] o que os desenvolvedores do Debian atribuem aos rígidos controles de qualidade na política do Debian.[9][10]
Uma característica importante da APT é a maneira como ela chama odpkg — ela faz aordenação topológica da lista de pacotes a serem instalados ou removidos e chama odpkg na melhor sequência possível. Em alguns casos, ela utiliza as opções--force dodpkg. No entanto, ela só faz isso quando é incapaz de calcular como evitar o motivo pelo qual odpkg exige que a ação seja forçada.
O usuário indica um ou mais pacotes a serem instalados. Cada nome de pacote é expressado apenas como a parte do nome do pacote, não como um nome de arquivo totalmente qualificado (por exemplo, em um sistema Debian,libc6 seria o argumento fornecido, nãolibc6_1.9.6-2.deb). Notavelmente, a APT obtém e instala automaticamente os pacotes dos quais o pacote indicado depende (se necessário). Esta foi uma característica distintiva original dos sistemas de gerenciamento de pacotes baseados em APT, pois evitava falhas de instalação devido à falta de dependências, um tipo deinferno de dependências.
Outra distinção é a recuperação de pacotes de repositórios remotos. A APT usa um arquivo de configuração de localização (/etc/apt/sources.list) para localizar os pacotes desejados, que podem estar disponíveis na rede ou em uma mídia de armazenamento removível, por exemplo, e recuperá-los, além de obter informações sobre pacotes disponíveis (mas não instalados).
A APT fornece outras opções de comando para substituir decisões tomadas pelo sistema de resolução de conflitos do apt-get. Uma opção é forçar uma versão específica de um pacote. Isso pode rebaixar (downgrade) um pacote e tornar o software dependente inoperante, portanto, o usuário deve ter cuidado.
Finalmente, o mecanismoapt_preferences permite que o usuário crie uma política de instalação alternativa para pacotes individuais.
O usuário pode especificar pacotes usando umaexpressão regular POSIX.
A APT pesquisa sua lista de pacotes em cache e lista as dependências que devem ser instaladas ou atualizadas.
A APT recupera, configura e instala as dependências automaticamente.
Gatilhos (triggers) são o tratamento de ações diferidas.
Os modos de uso doapt eapt-get que facilitam a atualização de pacotes instalados incluem:
update é usado para ressincronizar os arquivos deíndice de pacotes a partir de suas fontes. As listas de pacotes disponíveis são obtidas do(s) local(is) especificado(s) em/etc/apt/sources.list. Por exemplo, ao usar um arquivo Debian, este comando recupera e verifica os arquivosPackages.gz, para que as informações sobre pacotes novos e atualizados estejam disponíveis.
upgrade é usado para instalar as versões mais recentes de todos os pacotes atualmente instalados no sistema a partir das fontes enumeradas em/etc/apt/sources.list. Pacotes atualmente instalados com novas versões disponíveis são recuperados e atualizados; em nenhuma circunstância os pacotes atualmente instalados são removidos, ou pacotes não instalados recuperados e instalados. Novas versões de pacotes atualmente instalados que não podem ser atualizados sem alterar o status de instalação de outro pacote serão deixados em sua versão atual.
full-upgrade (apt) edist-upgrade (apt-get), além de executar a função deupgrade, também lidam de forma inteligente com a mudança de dependências com novas versões de pacotes;apt eapt-get têm um sistema de resolução de conflitos "inteligente" e tentarão atualizar os pacotes mais importantes em detrimento dos menos importantes, se necessário. O arquivo/etc/apt/sources.list contém uma lista de locais dos quais recuperar os arquivos de pacote desejados.[4] Oaptitude tem um recursodist-upgrade mais inteligente chamadofull-upgrade.[11]
/etc/apt/sources.list:[14] Locais de onde buscar pacotes.
/etc/apt/sources.list.d/: Fragmentos adicionais da lista de fontes.
/etc/apt/apt.conf: Arquivo de configuração da APT.
/etc/apt/apt.conf.d/: Fragmentos do arquivo de configuração da APT.
/etc/apt/preferences.d/: Diretório com arquivos de preferências de versão. É aqui que o "pinning" é especificado, ou seja, uma preferência para obter certos pacotes de uma fonte separada ou de uma versão diferente de uma distribuição.
/var/cache/apt/archives/: Área de armazenamento para arquivos de pacote recuperados.
/var/cache/apt/archives/partial/: Área de armazenamento para arquivos de pacote em trânsito.
/var/lib/apt/lists/: Área de armazenamento para informações de estado para cada recurso de pacote especificado emsources.list
/var/lib/apt/lists/partial/: Área de armazenamento para informações de estado em trânsito.
A APT depende do conceito derepositórios para encontrar software e resolver dependências. Para a APT, um repositório é um diretório contendo pacotes junto com um arquivo de índice. Isso pode ser especificado como um local em rede ouCD-ROM. Desde 14 de agosto de 2021 (2021 -08-14)[update] o projeto Debian mantém um repositório central de mais de 50.000 pacotes de software prontos para download e instalação.[15]
Qualquer número de repositórios adicionais pode ser adicionado ao arquivo de configuraçãosources.list da APT (/etc/apt/sources.list) e então ser consultado pela APT. Front-ends gráficos geralmente permitem modificar osources.list de forma mais simples (apt-setup). Uma vez que um repositório de pacotes tenha sido especificado (como durante a instalação do sistema), os pacotes nesse repositório podem ser instalados sem especificar uma fonte e serão mantidos atualizados automaticamente.
Além dos repositórios de rede,discos compactos e outras mídias de armazenamento (pendrive USB, discos rígidos...) também podem ser usados, usandoapt-cdrom[16] ou adicionando URIfile:/[17] ao arquivo de lista de fontes. Oapt-cdrom pode especificar uma pasta diferente de um CD-ROM, usando a opção-d (ou seja, um disco rígido ou um pendrive USB). Os CDs do Debian disponíveis para download contêm repositórios Debian. Isso permite que máquinas sem rede sejam atualizadas. Também é possível usar oapt-zip.
Problemas podem aparecer quando várias fontes oferecem o(s) mesmo(s) pacote(s). Sistemas que têm tais fontes possivelmente conflitantes podem usar o "APT pinning" para controlar quais fontes devem ser preferidas.
O recursoAPT pinning permite que os usuários forcem a APT a escolher versões específicas de pacotes que podem estar disponíveis em versões diferentes de repositórios diferentes. Isso permite que os administradores garantam que os pacotes não sejam atualizados para versões que possam entrar em conflito com outros pacotes no sistema, ou que não tenham sido suficientemente testados quanto a mudanças indesejadas.
Para fazer isso, ospins no arquivopreferences da APT (/etc/apt/preferences) devem ser modificados,[18] embora front-ends gráficos frequentemente tornem o pinning mais simples.
GDebi, uma ferramenta baseada em GTK patrocinada para o Ubuntu. (Há também uma versão Qt, disponível nos repositórios do Ubuntu como gdebi-kde.)
apt-cdrom, uma maneira de adicionar um novo CDROM à lista de repositórios disponíveis da APT (sources.lists). É necessário usar o apt-cdrom para adicionar CDs ao sistema APT, isso não pode ser feito manualmente.
Muon discover (anteriormente Muon software center), uma interface gráfica do usuário baseada em Qt
Hildon application manager (Maemo application), um front-endMaemo
apticron, um serviço projetado para ser executado viacron [en] para enviar avisos por e-mail de atualizações pendentes para um administrador de sistema (sysadmin).
Apt-offline: Uma maneira conveniente de fazer qualquer alteração não conteinerizada disponível em qualquer instalação Linux do tipo Debian sem usar uma conexão direta com a Internet. No entanto, uma conexão direta temporária pode ser necessária, como para instalar a Apt-offline em alguns dos tipos relevantes de Linux, e para adicionar os dePPAs à lista de fontes.
Os front-ends da APT podem:
procurar por novos pacotes;
atualizar pacotes;
instalar ou remover pacotes e
atualizar todo o sistema para uma nova versão.
Os front-ends da APT podem listar as dependências dos pacotes sendo instalados ou atualizados, perguntar ao administrador se os pacotes recomendados ou sugeridos pelos pacotes recém-instalados também devem ser instalados, instalar automaticamente as dependências e executar outras operações no sistema, como remover arquivos e pacotes obsoletos.
O esforço original que levou ao programaapt-get foi o projeto de substituição dodselect conhecido pelo seu codinomeDeity.[24] Este projeto foi encomendado em 1997 por Brian White, o gerente de lançamento do Debian na época. A primeira versão funcional doapt-get foi chamadadpkg-get e destinava-se apenas a ser um programa de teste para as funções da biblioteca principal que sustentariam a nova interface de usuário (UI).[25]
Grande parte do desenvolvimento original da APT foi feita noInternet Relay Chat (IRC), portanto os registros foram perdidos. Os arquivos da lista de discussão da "Equipe de criação do Deity" incluem apenas os principais destaques.
O nome "Deity" foi abandonado como nome oficial do projeto devido a preocupações sobre a natureza religiosa do nome. O nome APT foi eventualmente decidido após considerável discussão interna e pública. Por fim, o nome foi proposto no IRC, aceito e depois finalizado nas listas de discussão.[26]
A APT foi introduzida em 1998 e as versões de teste originais circularam no IRC. A primeira versão Debian que a incluiu foi o Debian 2.1, lançado em 9 de março de 1999.[27]
No final, o objetivo original do projeto Deity de substituir a interface de usuário dodselect foi um fracasso. O trabalho na parte da interface do usuário do projeto foi abandonado (os diretórios da interface do usuário foram removidos dosistema de versões concorrentes) após o primeiro lançamento público doapt-get. A resposta à APT como um métododselect e um utilitário de linha de comando foi tão grande e positiva que todos os esforços de desenvolvimento se concentraram em manter e melhorar a ferramenta. Somente muito mais tarde é que várias pessoas independentes construíram interfaces de usuário em cima dolibapt-pkg.
Eventualmente, uma nova equipe assumiu o projeto, começou a construir novos recursos e lançou a versão 0.6 da APT, que introduziu o recurso Secure APT, usando forteassinatura digitalcriptográfica para autenticar os repositórios de pacotes.[28]
A APT foi originalmente projetada como um front-end para odpkg para trabalhar com os pacotes.deb [en] do Debian. Uma versão da APT modificada para funcionar também com o sistemaRPM Package Manager foi lançada comoAPT-RPM [en].[29] O projetoFink portou a APT para oMac OS X para algumas de suas próprias tarefas de gerenciamento de pacotes,[30] e a APT também está disponível noOpenSolaris.
Oapt-file é um comando, empacotado separadamente da APT, para encontrar qual pacote inclui um arquivo específico, ou para listar todos os arquivos incluídos em um pacote em repositórios remotos.[31]