Fontes de software e estratégias de atualização
26.10: não limpe em massa pacotes OpenSSH no estado rc. Pacotes de substituição ainda podem usar a configuração antiga e a limpeza pode quebrar SSH. Verifique 26.10 problemas conhecidos e mantenha o acesso de recuperação antes da manutenção remota.
A configuração adequada das fontes de software e o estabelecimento de uma estratégia de atualização sólida são essenciais para a segurança e estabilidade do sistema. Este artigo explica como configurar fontes de software e várias estratégias de atualização no Ubuntu 26.04.
Noções básicas de fonte de software
Formato fonte 26.04
A partir do Ubuntu 24.04, a configuração de origem APT usa o novo formato DEB822, com o arquivo de configuração localizado em /etc/apt/sources.list.d/ubuntu.sources:
cat /etc/apt/sources.list.d/ubuntu.sourcesConteúdo típico:
Types: deb deb-src
URIs: http://archive.ubuntu.com/ubuntu
Suites: resolute resolute-updates resolute-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpgDescrições dos componentes de origem
| Componente | Descrição |
|---|---|
main | Software de código aberto oficialmente suportado pela Canonical |
restricted | Drivers proprietários com suporte oficial |
universe | Software de código aberto mantido pela comunidade |
multiverse | Software restrito por direitos autorais ou limitações legais |
Descrições das suítes
| Suíte | Descrição |
|---|---|
resolute | Repositório de versão base |
resolute-updates | Atualizações recomendadas |
resolute-backports | Versões de software mais recentes com backport |
resolute-security | Atualizações de segurança |
Mudando para um espelho
# Back up the original configuration
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
# Edit the source configuration
sudo nano /etc/apt/sources.list.d/ubuntu.sourcesSubstitua o URIs por um espelho:
Types: deb deb-src
URIs: https://mirrors.aliyun.com/ubuntu
Suites: resolute resolute-updates resolute-backports resolute-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpgAo escolher um espelho, prefira um que esteja geograficamente e com rede mais próxima de você. Os usuários de redes acadêmicas podem preferir espelhos Tsinghua ou USTC, enquanto os usuários de servidores em nuvem devem usar os espelhos internos de seus provedores para obter as melhores velocidades.
Espelhos comuns:
| Espelho | URL |
|---|---|
| Nuvem Alibaba | https://mirrors.aliyun.com/ubuntu |
| Universidade Tsinghua | https://mirrors.tuna.tsinghua.edu.cn/ubuntu |
| USTC | https://mirrors.ustc.edu.cn/ubuntu |
| Nuvem Huawei | https://mirrors.huaweicloud.com/ubuntu |
| Nuvem Tencent | https://mirrors.cloud.tencent.com/ubuntu |
Após a mudança, atualize o índice:
sudo apt updatePPAs são fontes de software mantidas pessoalmente por terceiros cujos pacotes não foram revisados pela Canonical. Adicionar PPAs não confiáveis pode introduzir riscos de segurança ou causar conflitos de dependência. Adicione PPAs apenas de projetos conhecidos e desative todos os PPAs antes de atualizar a versão do seu sistema.
Gestão de APP
PPAs (Personal Package Archives) permitem que desenvolvedores terceirizados distribuam pacotes de software.
Adicionando um PPA
# Add a PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
# Update the index after adding
sudo apt update
# Install software from the PPA; choose the version reported by ubuntu-drivers devices
sudo apt install nvidia-driver-XXXRemovendo um PPA
# Remove a PPA
sudo add-apt-repository --remove ppa:graphics-drivers/ppa
# Update the index
sudo apt updateAdicionando manualmente uma fonte de terceiros
Usando a fonte oficial Docker como exemplo:
# Download the GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Add the repository (DEB822 format)
# Note: Docker's official repository may not yet publish the resolute suite.
# If apt update reports a missing Release file, temporarily fall back to noble.
sudo tee /etc/apt/sources.list.d/docker.sources << 'EOF'
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: resolute
Components: stable
Signed-By: /usr/share/keyrings/docker-archive-keyring.gpg
EOF
# Update and install
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.ioListando fontes configuradas
# View all source files
ls /etc/apt/sources.list.d/
# View all sources used by APT
apt policy
# Check which source a package comes from
apt policy nginxGerenciamento de atualização APT
Comandos básicos de atualização
# Update the package index
sudo apt update
# Upgrade installed packages
sudo apt upgrade
# Smart upgrade (may install or remove dependencies)
sudo apt full-upgrade
# View upgradable packages without actually upgrading
apt list --upgradable
# Upgrade a specific package
sudo apt install --only-upgrade nginxVisualizando o histórico de atualizações
# View APT operation history
cat /var/log/apt/history.log
# View compressed history logs
zless /var/log/apt/history.log.1.gz
# View dpkg operation log
cat /var/log/dpkg.logFixação de pacote
Para evitar que um pacote específico seja atualizado:
# Hold a package version
sudo apt-mark hold package-name
# Unhold a package
sudo apt-mark unhold package-name
# View all held packages
apt-mark showholdatualizações autônomas Atualizações automáticas
Instalação e ativação
# Install (usually pre-installed on Ubuntu 26.04)
sudo apt install unattended-upgrades
# Enable automatic updates
sudo dpkg-reconfigure -plow unattended-upgradesConfigurando atualizações automáticas
Edite o arquivo de configuração principal:
sudo nano /etc/apt/apt.conf.d/50unattended-upgradesPrincipais opções de configuração:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
// Blacklist packages from auto-updating
Unattended-Upgrade::Package-Blacklist {
"linux-image*";
"linux-headers*";
"nginx";
};
// Automatically remove no-longer-needed dependencies
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// Automatically remove no-longer-needed kernels
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// Automatically reboot if necessary
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "03:00";
// Email notifications
Unattended-Upgrade::Mail "admin@example.com";
Unattended-Upgrade::MailReport "on-change";Configure a frequência de atualização:
sudo nano /etc/apt/apt.conf.d/20auto-upgradesAPT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";Testando atualizações automáticas
# Dry run (does not actually install)
sudo unattended-upgrade --dry-run --debug
# Run automatic updates immediately
sudo unattended-upgrade -v
# View automatic update logs
cat /var/log/unattended-upgrades/unattended-upgrades.logAtualizar recomendações de estratégia
Usuários de desktop
# Recommended: auto-install security updates, manually install feature updates
# /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";Verifique periodicamente e instale as atualizações manualmente:
sudo apt update && apt list --upgradable
sudo apt upgradeAmbientes de servidor
Para servidores de produção, é recomendado:
- Instalar automaticamente apenas atualizações de segurança; lidar com outras atualizações manualmente.
- Defina janelas de manutenção para atualizações planejadas.
- Teste em um ambiente de teste antes de aplicar na produção.
- Ative notificações por e-mail para se manter informado sobre atualizações.
# Recommended server configuration
# /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Mail "admin@example.com";Atualizações de versão
Atualizando para uma nova versão do Ubuntu
# Ensure the current system is fully updated
sudo apt update && sudo apt full-upgrade
# Check if a new version is available
do-release-upgrade -c
# Perform the version upgrade
sudo do-release-upgradeLimpeza após atualizações
# Clean the downloaded deb package cache
sudo apt clean
# Remove no-longer-needed dependencies
sudo apt autoremove
# Clean residual configuration files
dpkg -l | awk '$1 == "rc" {print $2}'