| Advanced Package Tool | |
|---|---|
Tela de instalação do apt no Linux, solicitando permissão ao usuário para instalar o LibreOffice. | |
| Desenvolvedor | The Debian Project |
| Lançamento | 31 de março de 1998 |
| Versão estável | |
| Escrito em | C++, shell script, XML, CMake, C, Perl |
| Sistema operacional | Unix-like |
| Tipo | Gerenciador de pacotes |
| Licença | GPLv2+ |
| Sítio eletrônico | wiki |
| Repositório | |
A Advanced Package Tool (APT) é uma interface de usuário de software livre que trabalha com bibliotecas principais para lidar com a instalação e remoção de software no Debian e em distribuições Linux baseadas no Debian. A APT simplifica o processo de gerenciamento de software em sistemas de computador do tipo Unix automatizando a recuperação, configuração e instalação de pacotes de software, seja a partir de arquivos pré-compilados ou compilando o código-fonte.
A APT é uma coleção de ferramentas distribuídas em um pacote chamado apt. Uma parte significativa da APT é definida em uma biblioteca de funções em C++; a APT também inclui programas de linha de comando para lidar com pacotes, que utilizam a biblioteca. Três desses programas são apt, apt-get e apt-cache. Eles são comumente usados em exemplos porque são simples e onipresentes. O pacote apt é 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 um front-end para o dpkg, mais amigável do que o antigo front-end dselect. Enquanto o dpkg 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 e supressão de atualização.
A APT é frequentemente aclamada como um dos melhores recursos do Debian,[por quem?] o que os desenvolvedores do Debian atribuem aos rígidos controles de qualidade na política do Debian.
Uma característica importante da APT é a forma como ela chama o dpkg — ela realiza a ordenação topológica da lista de pacotes a serem instalados ou removidos e chama o dpkg na melhor sequência possível. Em alguns casos, ela utiliza as opções --force do dpkg. No entanto, ela só faz isso quando é incapaz de calcular como evitar o motivo pelo qual o dpkg 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ão libc6_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 de inferno 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 mecanismo apt_preferences permite que o usuário crie uma política de instalação alternativa para pacotes individuais.
O usuário pode especificar pacotes usando uma expressã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 do apt e apt-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 arquivos Packages.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) e dist-upgrade (apt-get), além de executar a função de upgrade, também lidam de forma inteligente com a mudança de dependências com novas versões de pacotes; apt e apt-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. O aptitude tem um recurso dist-upgrade mais inteligente chamado full-upgrade./etc/apt contém as pastas e arquivos de configuração da APT.
apt-config é o programa de consulta de configuração da APT. apt-config dump mostra a configuração.[exemplo necessário]
/etc/apt/sources.list: 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 em sources.list/var/lib/apt/lists/partial/: Área de armazenamento para informações de estado em trânsito.A APT depende do conceito de repositó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 ou CD-ROM. Desde 14 de agosto de 2021[update] o projeto Debian mantém um repositório central de mais de 50.000 pacotes de software prontos para download e instalação.
Qualquer número de repositórios adicionais pode ser adicionado ao arquivo de configuração sources.list da APT (/etc/apt/sources.list)[exemplo necessário] e então ser consultado pela APT. Front-ends gráficos geralmente permitem modificar o sources.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, usando apt-cdrom ou adicionando URI file:/ ao arquivo de lista de fontes. O apt-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 o apt-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 recurso APT 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, os pins no arquivo preferences da APT (/etc/apt/preferences) devem ser modificados, embora front-ends gráficos frequentemente tornem o pinning mais simples.

Vários outros front-ends para a APT existem, fornecendo funções de instalação mais avançadas e interfaces mais intuitivas. Estes incluem:
Os front-ends da APT podem:
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 programa apt-get foi o projeto de substituição do dselect conhecido pelo seu codinome Deity. Este projeto foi encomendado em 1997 por Brian White, o gerente de lançamento do Debian na época. A primeira versão funcional do apt-get foi chamada dpkg-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).
Grande parte do desenvolvimento original da APT foi feita no Internet 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.
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.
No final, o objetivo original do projeto Deity de substituir a interface de usuário do dselect 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 do sistema de versões concorrentes) após o primeiro lançamento público do apt-get. A resposta à APT como um método dselect 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 do libapt-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 forte assinatura digital criptográfica para autenticar os repositórios de pacotes.
A APT foi originalmente projetada como um front-end para o dpkg para trabalhar com os pacotes .deb [en] do Debian. Uma versão da APT modificada para funcionar também com o sistema RPM Package Manager foi lançada como APT-RPM [en]. O projeto Fink portou a APT para o Mac OS X para algumas de suas próprias tarefas de gerenciamento de pacotes, e a APT também está disponível no OpenSolaris.
O apt-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.
gnome-apt was written by Havoc Pennington