Ubuntu: atualizar pacotes específicos ou atualizações de segurança
Para atualizar apenas pacotes específicos instalados no Ubuntu, use apt install --only-upgrade PACKAGE. Para selecionar atualizações de segurança, verifique as fontes permitidas em unattended-upgrades, simule a atualização e depois aplique-a. Dependendo das dependências ou configurações dos pacotes selecionados, outros pacotes também podem ser alterados juntos.
Coisas a verificar antes de atualizar
apt update busca a lista de pacotes do repositório, mas não atualiza os pacotes instalados. Instalação e atualização são tarefas separadas. Antes de aplicar a atualização, verifique os métodos de backup e recuperação, o espaço em disco e possíveis interrupções de serviço, e agende o horário da operação nos servidores de produção.
sudo apt update
apt list --upgradable
Se o primeiro comando falhar, resolva erros de repositório e de rede e, em seguida, atualize a lista novamente. O segundo comando mostra os pacotes atualmente atualizáveis, mas isso não significa que todos os itens da lista sejam atualizações de segurança.
Atualizando um Pacote Específico
Os comandos abaixo usam curl como exemplo, assumindo que ele já esteja instalado. Substitua pelo nome real do pacote instalado que você deseja atualizar. Primeiro, verifique a versão candidata, a origem e as alterações esperadas pelo APT.
apt-cache policy curl
sudo apt-get -s install --only-upgrade curl
-s é uma simulação que não realiza a instalação. --only-upgrade não instalará recentemente o pacote especificado se ele ainda não estiver instalado. No entanto, ele pode sugerir instalar, atualizar ou remover outros pacotes necessários para a atualização do pacote alvo, portanto, revise todo o resultado. A versão desejada pode não ser selecionada dependendo de pacotes mantidos, dependências e prioridade do repositório.
Se as alterações esperadas forem apropriadas, aplique-as com o seguinte comando. Reconfirme a lista de instalações, atualizações, remoções e requisitos de espaço sugeridos pelo APT e, se diferir do que você espera, pare na etapa de confirmação.
sudo apt install --only-upgrade curl
Após a conclusão, verifique a versão instalada com apt-cache policy curl e confirme se o serviço ou aplicativo correspondente opera corretamente. Dependendo do pacote, pode ser necessário reiniciar o serviço ou o sistema.
Verifique as fontes permitidas para atualizações de segurança
Ao contrário do nome, o unattended-upgrade nem sempre seleciona apenas atualizações de segurança. Dependendo das fontes permitidas configuradas, outras atualizações também podem ser instaladas. Primeiro, verifique se o pacote está instalado e as configurações atuais do APT.
dpkg-query -W unattended-upgrades
apt-config dump | grep -E 'Unattended-Upgrade::(Allowed-Origins|Origins-Pattern|Automatic-Reboot|Remove-)'
apt-cache policy
Se não estiver instalado, ele pode ser instalado com sudo apt install unattended-upgrades. Após a instalação, o agendamento de atualização automática pode se tornar ativo, então verifique a política do servidor e as configurações existentes do /etc/apt/apt.conf.d/20auto-upgrades. Compare as informações do repositório do apt-cache policy com a lista de permitidos, e também verifique as configurações para reinício automático ou remoção de pacotes desnecessários. A lista pode combinar valores de vários arquivos de configuração.
Se fontes fora do escopo de segurança, como -updates ou repositórios externos, forem permitidas, você deve ajustar as configurações de acordo com a política organizacional antes de executar o comando abaixo. O repositório de segurança ESM do Ubuntu Pro e os repositórios externos podem ser fontes separadas, portanto, verifique o escopo de suporte e as fontes para garantir que os patches de segurança necessários não sejam perdidos. Você pode verificar as fontes padrão e as configurações de reinicialização no documentação de atualizações automáticas do Ubuntu.
Exemplo permitindo apenas os repositórios de segurança gerais do Ubuntu
O seguinte é um exemplo de configuração que permite apenas os repositórios de segurança padrão do Ubuntu. Ele não inclui ESM ou repositórios externos, portanto, não o aplique como está em ambientes que exigem essas atualizações. Como esta é uma configuração persistente que também afeta as atualizações automáticas, registre suas políticas existentes e verifique se ela não entra em conflito com outras ferramentas de gerenciamento de configuração antes de prosseguir.
Em /etc/apt/apt.conf.d/, crie um novo arquivo chamado 99local-security-only sem sobrescrever um arquivo existente e salve o seguinte conteúdo. A lista de APT mantém as entradas existentes quando são adicionadas novas, portanto, primeiro limpe ambas as listas. #clear é uma diretiva de configuração do APT, não um prompt de shell.
#clear Unattended-Upgrade::Allowed-Origins;
#clear Unattended-Upgrade::Origins-Pattern;
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Outros arquivos podem adicionar novamente fontes mais tarde, então, após salvar, verifique as fontes realmente permitidas usando o apt-config dump acima e os resultados da execução simulada. O repositório de segurança deve estar ativo e, se as dependências necessárias não puderem ser obtidas das fontes permitidas, alguns pacotes podem permanecer pendentes. Para reverter esta configuração, basta remover o arquivo criado por esta operação e verificar novamente a configuração e os resultados da execução simulada.
Execução simulada e verificação pós-aplicação
O seguinte comando é usado para verificar as fontes permitidas e os pacotes a serem processados sem realmente instalar atualizações. Revise a saída e os registros para fontes inesperadas, itens pendentes e erros.
sudo unattended-upgrade --dry-run --debug
A execução da simulação não garante os resultados do trabalho real. Revise a fonte e o destino, as políticas de reinicialização/remoção automática e execute o seguinte comando apenas durante uma janela de manutenção adequada.
sudo unattended-upgrade --verbose
Após a conclusão, verifique os logs em /var/log/unattended-upgrades/ e o status dos serviços afetados e, se necessário, reinicie no horário planejado. Comentar repositórios em sources.list pode ignorar outros arquivos de origem e dependências, portanto este método não é usado aqui. Para opções e caminhos de logs, consulte Manual de atualização automática do Ubuntu.




