Então, me deparei com aquele problema estranho de "pacotes sendo retidos" ao atualizar meu sistema usando apt
. Após algumas pesquisas, parece ser o resultado de "atualizações em fases".
- O que são atualizações em fases, afinal?
- Por que o Ubuntu os usa?
- Como eles me beneficiam?
- Posso (e devo) desativá-los ou contorná-los?
- Por que
apt
as mensagens do ' sobre atualizações em fases são tão obscuras?
O que são atualizações em fases?
As atualizações em fases são atualizações de software que são implementadas gradualmente para os usuários, em vez de todos os usuários obterem as atualizações ao mesmo tempo. Em um sistema de atualização que não usa atualizações em fases, todos os usuários recebem imediatamente uma atualização assim que ela é disponibilizada. Quando as atualizações em fases são usadas, apenas alguns usuários obtêm uma atualização quando ela é lançada pela primeira vez. Com o passar do tempo, mais e mais usuários obtêm a atualização, até que a atualização seja finalmente "completamente faseada" e todos recebam a atualização.
O Ubuntu tem usado um sistema de atualização em fases para o Ubuntu Desktop desde o Ubuntu 13.04 (quase dez anos atrás!), No entanto, até agora, apenas o atualizador de GUI para Ubuntu foi capaz de lidar com atualizações em fases. A atualização via
apt
ignoraria a fase de atualização. No entanto, a partir do Ubuntu 21.04,apt
também usa atualizações em fases, permitindo que as atualizações em fases sejam aplicadas a todas as versões do Ubuntu, incluindo o Ubuntu Server e o Ubuntu executado em contêineres. Aliás, essa mudança também resultou na agora infame mensagem "Os seguintes pacotes foram retidos"apt
durante muitas atualizações do sistema. Embora as atualizações em fasesapt
sejam uma coisa desde o Ubuntu 21.04, elas vieram à tona mais claramente no Ubuntu 22.04 LTS.Por que o Ubuntu os usa?
Ocasionalmente, como qualquer outra pessoa, os desenvolvedores do Ubuntu cometem erros. Embora as atualizações sejam testadas antes de serem lançadas, às vezes casos inesperados não são levados em consideração adequadamente. E se esses casos inesperados se tornarem um pouco comuns, eles podem começar a causar problemas aos usuários em seus sistemas.
No passado, antes que as atualizações em fases fossem usadas com o Apt, sempre que uma atualização fosse lançada, todos os usuários do Ubuntu seriam imediatamente capazes de instalar a atualização. E se essa atualização for instável, pode atrapalhar os sistemas de muitas pessoas de uma só vez. As atualizações em fases fazem com que, no caso de uma atualização ser ruim, ela seja detectada antes que todos recebam a atualização. Depois que uma atualização é lançada, alguns usuários a obtêm mais cedo do que outros. E se os sistemas desses usuários começarem a relatar falhas (ou se problemas graves com um pacote surgirem), o processo de faseamento pode ser interrompido, fazendo com que a atualização pare de ser enviada aos usuários por padrão. Isso melhora a segurança e a estabilidade do Ubuntu.
O sistema de fases faz com que diferentes conjuntos de usuários sejam escolhidos para serem os primeiros a receber as atualizações, para que não haja um grupo de pessoas azaradas que sempre recebam as atualizações logo após o lançamento.
Como eles me beneficiam?
Se você se deparou com momentos em que uma atualização quebrou seu sistema no passado, provavelmente não terá esse problema no futuro. A fase de atualização faz com que seja mais provável que a quebra seja detectada no início, evitando causar problemas aos desktops, servidores e outros dispositivos com Ubuntu dos usuários. Isso beneficia diretamente os usuários do Ubuntu, aumentando a estabilidade e a confiabilidade do Ubuntu.
Posso (e devo) desativá-los ou contorná-los?
Isso depende de quão estável você precisa que seu sistema seja. Se você quiser apenas evitar avisos sobre pacotes sendo retidos durante
apt
as atualizações e estiver disposto a ser uma das primeiras pessoas a receber atualizações sempre que elas forem lançadas, você pode desativar as atualizações em fases. Isso é um pouco arriscado, pois significa que, se uma atualização for ruim, você sempre será a primeira pessoa a receber a atualização (essencialmente, você está se tornando uma cobaia para os primeiros lançamentos de atualização!). Mas ele se livrará dos avisos sobre pacotes retidos noapt
.Se isso soa como uma má ideia, deixe as atualizações em fases ativadas.
Trabalhar em torno de atualizações em fases executando
apt install
em pacotes retidos provavelmente é sempre uma má ideia - não "conserta" permanentemente o aviso de pacote retido (que na verdade não precisa ser corrigido em primeiro lugar) e fará com que você instale pacotes cedo. Se você já fez isso, provavelmente não vai atrapalhar seu sistema (a menos que a atualização tenha um problema), mas provavelmente não é algo que você queira fazer um hábito.Se você tiver certeza absoluta de que deseja desabilitar as atualizações em fases, poderá alterar a configuração do apt criando um arquivo em
/etc/apt/apt.conf.d
, contendo as seguintes linhas:Você pode nomear o arquivo
99-Phased-Updates
se/etc/apt/apt.conf.d/99-Phased-Updates
ainda não existir. Novamente, faça isso apenas se você realmente souber o que está fazendo e tiver certeza absoluta de que precisa fazer isso (por exemplo, se você estiver instalando intencionalmente todos os pacotes mais recentes, pois deseja ajudar a testá-los e pode pagar se o seu sistema rompe). Se você está fazendo isso por qualquer outro motivo que não este exemplo, provavelmente há uma maneira melhor.Por que
apt
as mensagens do ' sobre atualizações em fases são tão obscuras?Na verdade, é um pouco difícil
apt
reconhecer as atualizações em fases como sendo retidas porque são atualizações em fases, devido ao modo como as dependências funcionam. No entanto, reconhecemos que esse é um problema irritante e está em nosso radar. Há um relatório de bug sobre isso aqui: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1988819 Se você tem uma conta Ubuntu SSO e pode fazer login no Launchpad, você pode clicar em "Este bug afeta X pessoas. Esse bug afeta você?" link próximo ao topo da página e clique em "Sim, isso me afeta" para aumentar a classificação de calor do bug, tornando-a mais significativa.(Nota: Por favor , não deixe comentários maldosos e desagradáveis na parte inferior do relatório do bug - tudo o que isso faz é nos deixar irritados ou chateados, e na verdade não nos pressiona a corrigir o bug mais rápido.)