Pular para o conteúdo
APT 3.3 no Debian Unstable: fim do aviso de CLI instável e melhorias em atualizações graduais

APT 3.3 no Debian Unstable: fim do aviso de CLI instável e melhorias em atualizações graduais

A nova versão do APT traz estabilidade para scripts, correções críticas em phased updates e modernização do código C++. Saiba o que muda para usuários e desenvolvedores.

A versão 3.3 do APT — ferramenta central de gerenciamento de pacotes do Debian — foi incorporada ao repositório Unstable (sid), etapa inicial do ciclo de desenvolvimento da distribuição. O lançamento marca um marco importante: o fim do aviso histórico sobre a instabilidade da interface de linha de comando (CLI) do apt.

Por anos, usuários viam mensagens como "Warning: The apt CLI is not stable yet..." ao executar certos comandos interativamente. O Debian recomendava o uso de apt-get e apt-cache em scripts, reservando apt exclusivamente para uso interativo por sua simplicidade e saída formatada. Agora, esse aviso foi removido oficialmente.

Por que o aviso desapareceu?

A mudança é possível graças à introdução da flag --cli-version, que permite ao APT declarar e manter compatibilidade com versões específicas da interface de linha de comando. Com isso, novas funcionalidades podem ser adicionadas sem quebrar scripts legados — e versões antigas da CLI podem ser descontinuadas de forma controlada, sem necessidade de um alerta genérico.

Essa evolução consolida o apt como uma ferramenta pronta para ambientes mistos: tanto para uso humano quanto para automação robusta.

Correções críticas em atualizações graduais

O mecanismo de Phased-Update-Percentage, responsável por liberar atualizações de forma progressiva (em vez de atingir todos os usuários de uma vez), recebeu uma correção importante. Uma falha de probabilidade que poderia distorcer a distribuição real dos pacotes entre os usuários foi corrigida. Isso aumenta a confiabilidade do sistema de rollout gradual — essencial para mitigar impactos de atualizações problemáticas.

Melhorias no núcleo de aquisição de pacotes

O código de aquisição de pacotes (pkgAcquire) foi aprimorado em dois pontos-chave:

  • Tratamento mais seguro de transações quando pkgAcquire::Run é cancelado;
  • Reordenação na gravação de metadados InRelease, agora realizada após outros itens da transação — garantindo consistência e integridade no cache local.

Usabilidade e correções de relacionamento entre pacotes

Na camada de experiência do usuário:

  • A lista de histórico (apt history) agora se adapta dinamicamente à largura do terminal;
  • A otimização de atalhos de comandos foi refinada para maior eficiência;
  • Um erro de análise de dependências foi corrigido, especialmente em relações Pre-Depends, que são críticas para a ordem correta de instalação de pacotes essenciais.

Modernização do código-fonte

O projeto adotou construções mais recentes do padrão C++17/C++20 em diversos módulos, incluindo:

std::span
for (auto& item : container)  // loops baseados em intervalo
container.emplace(...)
std::make_unique<...>()

Além disso, foram sanadas várias fugas de memória no código de manipulação de métodos (como http, ftp, file), contribuindo para maior estabilidade e eficiência em operações de rede e disco.

Próximos passos no ciclo do Debian

A versão 3.3 está atualmente disponível apenas no repositório Unstable. Ela seguirá para Testing após cumprir critérios de estabilidade e tempo mínimo de permanência — processo típico antes de eventual inclusão no próximo Stable.

Para detalhes completos, consulte o changelog oficial.

Por · Última atualização: