Sources de logiciels et stratégies de mise à jour
26.10 : ne purgez pas en masse les packages OpenSSH dans l’état rc. Les packages de remplacement peuvent toujours utiliser l’ancienne configuration et la purge peut interrompre SSH. Vérifiez 26.10 problèmes connus et conservez l’accès à la récupération avant la maintenance à distance.
Une configuration correcte des sources logicielles et l’établissement d’une stratégie de mise à jour solide sont essentiels à la sécurité et à la stabilité du système. Cet article explique comment configurer les sources logicielles et diverses stratégies de mise à jour dans Ubuntu 26.04.
Bases des sources de logiciels
Ubuntu 26.04 Format source
À partir de Ubuntu 24.04, la configuration source APT utilise le nouveau format DEB822, avec le fichier de configuration situé dans /etc/apt/sources.list.d/ubuntu.sources :
cat /etc/apt/sources.list.d/ubuntu.sourcesContenu typique :
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.gpgDescriptions des composants sources
| Composant | Description |
|---|---|
main | Logiciel open source officiellement pris en charge par Canonical |
restricted | Chauffeurs propriétaires avec support officiel |
universe | Logiciel open source maintenu par la communauté |
multiverse | Logiciel restreint par le droit d’auteur ou des limitations légales |
Description des suites
| Suite | Description |
|---|---|
resolute | Dépôt de la version de base |
resolute-updates | Mises à jour recommandées |
resolute-backports | Versions logicielles plus récentes rétroportées |
resolute-security | Mises à jour de sécurité |
Passer à un miroir
# 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.sourcesRemplacez l’URIs par un miroir :
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.gpgLorsque vous choisissez un miroir, préférez-en un qui est proche géographiquement et réseaument de vous. Les utilisateurs du réseau académique peuvent préférer les miroirs Tsinghua ou USTC, tandis que les utilisateurs de serveurs cloud doivent utiliser les miroirs internes de leur fournisseur pour obtenir les meilleures vitesses.
Miroirs courants :
| Miroir | URL |
|---|---|
| Alibaba Nuage | https://mirrors.aliyun.com/ubuntu |
| Université Qinghua | https://mirrors.tuna.tsinghua.edu.cn/ubuntu |
| USTC | https://mirrors.ustc.edu.cn/ubuntu |
| Nuage Huawei | https://mirrors.huaweicloud.com/ubuntu |
| Tencent Cloud | https://mirrors.cloud.tencent.com/ubuntu |
Après le changement, actualisez l’index :
sudo apt updateLes PPA sont des sources logicielles tierces gérées personnellement dont les packages n’ont pas été examinés par Canonical. L’ajout de PPA non fiables peut introduire des risques de sécurité ou provoquer des conflits de dépendances. Ajoutez uniquement des PPA provenant de projets bien connus et désactivez tous les PPA avant de mettre à niveau la version de votre système.
Gestion des PPA
Les PPA (Personal Package Archives) permettent aux développeurs tiers de distribuer des progiciels.
Ajouter 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-XXXSupprimer un PPA
# Remove a PPA
sudo add-apt-repository --remove ppa:graphics-drivers/ppa
# Update the index
sudo apt updateAjout manuel d’une source tierce
En utilisant la source officielle Docker comme exemple :
# 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.ioListe des sources configurées
# 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 Gestion des mises à jour
Commandes de mise à jour de base
# 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 nginxAffichage de l’historique des mises à jour
# 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.logÉpinglage de colis
Pour empêcher la mise à jour d’un package spécifique :
# 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 showholdmises à niveau sans surveillance Mises à jour automatiques
Installation et activation
# Install (usually pre-installed on Ubuntu 26.04)
sudo apt install unattended-upgrades
# Enable automatic updates
sudo dpkg-reconfigure -plow unattended-upgradesConfiguration des mises à jour automatiques
Modifiez le fichier de configuration principal :
sudo nano /etc/apt/apt.conf.d/50unattended-upgradesOptions de configuration clés :
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";Configurez la fréquence de mise à jour :
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";Test des mises à jour automatiques
# 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.logMettre à jour les recommandations stratégiques
Utilisateurs de bureau
# 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";Vérifiez périodiquement et installez les mises à jour manuellement :
sudo apt update && apt list --upgradable
sudo apt upgradeEnvironnements de serveur
Pour les serveurs de production, il est recommandé de :
- Installation automatique des mises à jour de sécurité uniquement ; gérer les autres mises à jour manuellement.
- Définissez les fenêtres de maintenance pour les mises à jour planifiées.
- Testez dans un environnement de test avant de postuler en production.
- Activez les notifications par e-mail pour rester informé des mises à jour.
# 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";Mises à niveau des versions
Mise à niveau vers une nouvelle version d’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-upgradeNettoyage après les mises à jour
# 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}'