Foi lançado o pacote de ferramentas para gerenciamento de pacotes APT 3.0.0 (Advanced Package Tool), que incorpora as mudanças acumuladas na ramificação experimental 2.9. Esta nova versão foi aceita na ramificação Debian Unstable e em breve será integrada ao repositório Debian Testing, que está desenvolvendo a versão Debian 13 e já utiliza a ramificação experimental APT 2.9, além de ser adicionada à base de pacotes do Ubuntu.
Entre as mudanças mais importantes:
- A interface do usuário foi reformulada, apresentando uma exibição mais clara da lista de dependências necessárias para download durante a instalação do pacote. Anteriormente, os nomes dos pacotes com dependências eram exibidos em uma lista contínua, mas agora são organizados em colunas no estilo do utilitário “ls -C”, e diferentes blocos de saída são destacados com cores distintas (por exemplo, pacotes a serem removidos são destacados em vermelho, enquanto os pacotes a serem instalados aparecem em verde). As menções duplicadas a pacotes adicionais e novos foram removidas (as seções “NEW packages” e “additional packages” foram unificadas). Para gerenciar a coloração, foram adicionadas configurações “APT::Color::*” e “APT::Configuration::color”, assim como as opções “—color” e “—no-color”.

- Foi implementada a divisão automática em páginas para as saídas dos comandos “show”, “policy”, “list”, “search” e “showsrc”. A divisão em páginas é ativada pela configuração Binary::apt::Pager, e o aplicativo para dividir as páginas é determinado pela variável de ambiente PAGER.
- Um novo mecanismo de resolução de dependências, o Solver3 (ativado pela opção “—solver 3.0”), foi implementado, utilizando um algoritmo de busca com retrocesso (backtracking) para resolver conflitos entre dependências. No novo mecanismo, também foi melhorada a seleção de versões, garantindo suporte para atualizações em várias etapas, aumentando significativamente o desempenho (o apt-test agora é executado duas vezes mais rápido), adicionada a opção “—no-strict-pinning” para instalação de versões experimentais, e implementada proteção contra a remoção manual de pacotes instalados. Foram adicionadas explicações mais claras para usuários comuns sobre erros relacionados a dependências.
- O uso da ferramenta apt-key para gerenciar chaves usadas para verificar assinaturas digitais de pacotes foi descontinuado. A ferramenta apt-key foi considerada obsoleta há alguns anos, em função da transição para um novo modelo de verificação de integridade de pacotes, que separa o armazenamento de chaves para cada repositório. Anteriormente, era utilizado um store comum de chaves (/etc/apt/trusted.gpg), o que significava que uma chave adicionada para um repositório de terceiros também valia para verificar pacotes em todos os repositórios. O novo método de gerenciamento de chaves implica a separação de repositórios (em /etc/apt/trusted.gpg.d/ ou /etc/apt/keyrings/).
- Adicionada a possibilidade de usar a ferramenta sqv do projeto Sequoia para verificar assinaturas digitais, ao invés de chamar o gpgv. Uma nova ferramenta chamada gpg-sq, escrita em Rust, foi adicionada à lista de caminhos para chamada ao gpg, aceitando os mesmos argumentos que o gpg, mas simulando sua funcionalidade através do Sequoia, uma implementação do OpenPGP em Rust. A chamada ao gpg-sq tem precedência sobre o gpg, ou seja, para usar o gpg-sq em vez do gpg, basta instalar o pacote correspondente.
- Adicionado um backend criptográfico para a biblioteca OpenSSL, que substitui o GnuTLS e o Gcrypt.
- Garantida a associação de tipos de chaves com extensões de arquivos: a extensão ‘.asc’ está vinculada a chaves ascii-armored, ‘.gpg’ sempre irá referir-se a chaves binárias, e outras extensões de arquivo gerarão um erro. Por exemplo, ao usar um arquivo de chave em ‘/etc/apt/keyrings/winehq-archive.key’, será necessário renomeá-lo para ‘/etc/apt/keyrings/winehq-archive.gpg’ e corrigir o caminho no arquivo ‘/etc/apt/sources.list.d/’. Implementada a verificação independente dos repositórios de chaves (keyring) e a execução da operação de dearmor (transformação de chave do formato ASCII-armored para formato binário) sem o uso do apt-key.
- Muitas funções foram adaptadas para usar a classe 'std::string' em vez de 'const char *' (a classe std::string_view definida no padrão C++17, que trabalha de forma mais eficiente com strings utilizando referências a dados existentes e evitando cópias desnecessárias de dados até que seja exigido no código).
- Proposto uma interface abstrata para trabalhar com hashes, implementada no âmbito do trabalho de eliminação da dependência rígida a uma única biblioteca criptográfica.
- Na saída do comando 'apt show —full' foram adicionadas informações sobre o pinning de pacotes, obtidas a partir dos campos APT-Pin, APT-Candidate e APT-Release.
- Recomendado oficialmente nomear arquivos no diretório /etc/apt/sources.list.d/ com o nome do fornecedor atual em letras minúsculas (‘$(dpkg-vendor --query Vendor | tr A-Z a-z).sources’).
- Adicionada suporte a transações e contadores de atualizações no pkgDepCache.
- Adicionada a opção ‘--comment’ para deixar um comentário, que será salvo no histórico de operações realizadas.
- Adicionada suporte ao cabeçalho HTTP Retry-After para otimizar a continuação de downloads interrompidos.
- Adicionada a opção ‘--target-release’ ao comando ‘apt list’.
- Foi adicionado um novo nível de erros 'audit', ativado pela opção '--audit'.
Além disso, podem ser destacadas as alterações introduzidas na versão experimental do ramo APT 2.7 (o desenvolvimento do ramo 2.7 transicionou suavemente para o desenvolvimento do ramo 2.9), que estarão disponíveis no Debian 13 (o Debian 12 utiliza o lançamento APT 2.6):
- Foi adicionada a suporte a snapshots, gerenciado pela opção '--snapshot' ('-S'), através da qual é possível acessar servidores de repositórios que suportam snapshots e selecionar um estado específico do arquivo do repositório. Por exemplo, ao especificar '--snapshot 20250405T081400Z', é possível trabalhar com um instantâneo do estado do repositório, registrado em 5 de abril de 2025 às 08:14:00. Snapshots são configurados na seção APT::Snapshot nos arquivos sources-list.
- Implementada a opção '--update' ('-U'), que permite, ao executar comandos de instalação ou atualização de pacotes (apt install ou apt upgrade), iniciar automaticamente a operação 'apt update' para sincronizar os índices antes de abrir o cache e processar o sources.list.
- Adicionada a comando 'dist-clean' para remover pacotes e listas de pacotes armazenados em cache.
Fonte: opennet.ru

