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.
Uso 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, 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.
Instalando software 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.
Update, upgrade e dist-upgrade 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.
Configuração e arquivos /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.
Arquivos /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.
Fontes 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. 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) 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.
APT pinning 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.
Front-ends miniaturadaimagem|300px|Synaptic Package Manager é um dos front-ends disponíveis para a APT.
Vários outros front-ends para a APT existem, fornecendo funções de instalação mais avançadas e interfaces mais intuitivas. Estes incluem: Synaptic, uma interface gráfica do usuário GTK Ubuntu Software Center, uma interface gráfica do usuário GTK desenvolvida pelo projeto Ubuntu aptitude, um cliente de console com interfaces CLI e TUI baseada em ncurses Adept package manager, uma interface gráfica do usuário para KDE (deb, rpm, bsd) PackageKit, um front-end D-Bus, mantido pelo freedesktop.org, alimenta o GNOME Software e o KDE Discover. 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. apt-zip, uma maneira de usar a APT com mídia removível, especificamente pendrives USB. aptURL, um pacote de software Ubuntu que permite que aplicativos de usuário final instalem com um único clique através de um navegador. Cydia, um gerenciador de pacotes para iOS com jailbreak baseado na APT (portada para iOS como parte do projeto Telesphoreo). Sileo, como o Cydia, um gerenciador de pacotes para iOS com jailbreak baseado em versões mais recentes da APT (portada para iOS pela equipe Electra) gnome-apt, um front-end gráfico baseado em widgets GTK/GNOME. Desenvolvido por Havoc Pennington Muon discover (anteriormente Muon software center), uma interface gráfica do usuário baseada em Qt Hildon application manager (Maemo application), um front-end Maemo apticron, um serviço projetado para ser executado via para enviar avisos por e-mail de atualizações pendentes para um administrador de sistema (sysadmin). APT Daemon, um front-end que roda como um serviço para permitir que usuários instalem software através do e é, por sua vez, a estrutura usada pelo Ubuntu software center (juntamente com o gerenciador de software do Linux Mint). Package installer, parte do MX Linux. APTus, uma coleção de scripts e uma interface gráfica, parte do SparkyLinux. 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 de PPAs à 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.
História