Fuentes de software y estrategias de actualización
26.10: no realice una purga masiva de los paquetes OpenSSH en el estado rc. Los paquetes de reemplazo pueden seguir usando la configuración anterior y la purga puede dañar SSH. Verifique 26.10 problemas conocidos y conserve el acceso de recuperación antes del mantenimiento remoto.
Configurar correctamente las fuentes de software y establecer una estrategia de actualización sólida son fundamentales para la seguridad y estabilidad del sistema. Este artículo explica cómo configurar fuentes de software y varias estrategias de actualización en Ubuntu 26.04.
Conceptos básicos de fuentes de software
Ubuntu 26.04 Formato fuente
A partir de Ubuntu 24.04, la configuración de origen de APT utiliza el nuevo formato DEB822, con el archivo de configuración ubicado en /etc/apt/sources.list.d/ubuntu.sources:
cat /etc/apt/sources.list.d/ubuntu.sourcesContenidos típicos:
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.gpgDescripciones de los componentes de origen
| Componente | Descripción |
|---|---|
main | Software de código abierto oficialmente respaldado por Canonical |
restricted | Controladores propietarios con soporte oficial. |
universe | Software de código abierto mantenido por la comunidad |
multiverse | Software restringido por derechos de autor o limitaciones legales |
Descripciones de suites
| Suite | Descripción |
|---|---|
resolute | Repositorio de versiones base |
resolute-updates | Actualizaciones recomendadas |
resolute-backports | Versiones de software más recientes respaldadas |
resolute-security | Actualizaciones de seguridad |
Cambiar a un espejo
# 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.sourcesReemplace el URIs con un espejo:
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.gpgAl elegir un espejo, prefiera uno que esté geográficamente y en red cerca de usted. Los usuarios de la red académica pueden preferir los espejos Tsinghua o USTC, mientras que los usuarios de servidores en la nube deberían usar los espejos internos de su proveedor para obtener las mejores velocidades.
Espejos comunes:
| Espejo | URL |
|---|---|
| Nube de Alibaba | https://mirrors.aliyun.com/ubuntu |
| Universidad de Tsinghua | https://mirrors.tuna.tsinghua.edu.cn/ubuntu |
| USTC | https://mirrors.ustc.edu.cn/ubuntu |
| Nube de Huawei | https://mirrors.huaweicloud.com/ubuntu |
| Nube Tencent | https://mirrors.cloud.tencent.com/ubuntu |
Después de cambiar, actualice el índice:
sudo apt updateLos PPA son fuentes de software mantenidas personalmente por terceros cuyos paquetes no han sido revisados por Canonical. Agregar PPA que no son de confianza puede introducir riesgos de seguridad o provocar conflictos de dependencia. Solo agregue PPA de proyectos conocidos y desactive todos los PPA antes de actualizar la versión de su sistema.
Gestión de APP
Los PPA (archivos de paquetes personales) permiten a desarrolladores externos distribuir paquetes de software.
Agregar un 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-XXXEliminar un PPA
# Remove a PPA
sudo add-apt-repository --remove ppa:graphics-drivers/ppa
# Update the index
sudo apt updateAgregar manualmente una fuente de terceros
Usando la fuente oficial Docker como ejemplo:
# 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.ioListado de fuentes 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 nginxAPT Gestión de actualizaciones
Comandos básicos de actualización
# 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 nginxVer el historial de actualizaciones
# 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.logFijación de paquetes
Para evitar que se actualice un paquete específico:
# 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 showholdactualizaciones desatendidas Actualizaciones automáticas
Instalación y Activación
# Install (usually pre-installed on Ubuntu 26.04)
sudo apt install unattended-upgrades
# Enable automatic updates
sudo dpkg-reconfigure -plow unattended-upgradesConfigurar actualizaciones automáticas
Edite el archivo de configuración principal:
sudo nano /etc/apt/apt.conf.d/50unattended-upgradesOpciones de configuración clave:
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";Configurar la frecuencia de actualización:
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";Prueba de actualizaciones 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.logActualizar recomendaciones de estrategia
Usuarios de escritorio
# 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 periódicamente e instale actualizaciones manualmente:
sudo apt update && apt list --upgradable
sudo apt upgradeEntornos de servidor
Para servidores de producción, se recomienda:
- Solo actualizaciones de seguridad de instalación automática; manejar otras actualizaciones manualmente.
- Establezca ventanas de mantenimiento para actualizaciones planificadas.
- Prueba en un entorno de prueba antes de aplicar a producción.
- Habilite las notificaciones por correo electrónico para mantenerse informado sobre las actualizaciones.
# 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";Actualizaciones de versión
Actualización a una nueva versión 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-upgradeLimpieza después de las actualizaciones
# 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}'