Beaucoup de personnes pensent à installer Ubuntu mais oublient les mises à jour régulières. Pourtant, ces mises à jour sont essentielles pour corriger des bugs, améliorer les performances et surtout éviter les failles de sécurité. Dans ce tutoriel, vous allez apprendre à configurer Ubuntu pour qu’il s’occupe lui-même de ses mises à jour, sans intervention de votre part.
Ubuntu : tout savoir sur les mises à jour system
Avant d’automatiser les mises à jour sur Ubuntu, il est essentiel de comprendre les différentes catégories disponibles. Ubuntu organise ses mises à jour en canaux distincts, chacun ayant une finalité précise. Cette distinction permet de mieux contrôler ce qui doit ou non être mis à jour automatiquement.
- Mises à jour de sécurité (
-security
) : appliquent rapidement les correctifs de vulnérabilités. Indispensables et activées par défaut. - Mises à jour standard (
-updates
) : réparent des bugs et améliorent la stabilité sans changer les fonctionnalités majeures. Recommandées. - Mises à jour rétroportées (
-backports
) : proposent des versions plus récentes de certains logiciels, adaptées à votre version d’Ubuntu. Facultatives. - Mises à jour en test (
-proposed
) : paquets encore en validation pouvant contenir des bugs. Réservées aux testeurs ; à éviter en production. - Snap, Flatpak et PPA : gèrent leurs mises à jour en dehors d’APT. Les paquets Snap/Flatpak se mettent à jour automatiquement ; les PPA exigent un suivi manuel.
Découvrez également comment mettre à jour intégralement Ubuntu Desktop ou Server.
Installer unattended-upgrades pour activer les mises à jours automatiques
Ubuntu intègre nativement un système capable de gérer automatiquement les mises à jour, en particulier celles de sécurité. Cet outil s’appelle unattended-upgrades
. Il est souvent préinstallé sur les versions récentes d’Ubuntu, mais mieux vaut vérifier manuellement sa présence.
Installer le paquet unattended-upgrades
Ouvrez un terminal et exécutez la commande suivante :
sudo apt update && sudo apt install unattended-upgrades
Cette commande vérifie d’abord que la liste des paquets est à jour, puis installe unattended-upgrades
s’il n’est pas encore présent sur votre système. Si le paquet est déjà installé, aucune action supplémentaire n’est nécessaire à cette étape.
Activer la mise à jour automatique
Une fois le paquet en place, vous pouvez activer la mise à jour automatique avec l’utilitaire de configuration fourni :
sudo dpkg-reconfigure --priority=low unattended-upgrades
Un écran s’affiche dans le terminal pour vous demander si vous souhaitez activer les mises à jour de sécurité automatiques. Choisissez « Oui » puis validez.
⚠️ Remarque : si vous voyez une erreur mentionnant ValueError: could not convert string to float: '6.06 LTS'
, il s’agit d’un bug connu lié à l’outil lsb_release
sur certaines versions d’Ubuntu. Dans ce cas, reportez-vous à la section « Dépannage » plus bas dans ce guide pour appliquer une correction manuelle.
Configuration de base des mises à jour automatiques sous Ubuntu
Configurer les mises à jour automatiques sous Ubuntu repose principalement sur deux fichiers :
/etc/apt/apt.conf.d/20auto-upgrades
: définit le comportement périodique d’APT/etc/apt/apt.conf.d/50unattended-upgrades
: spécifie les sources de mises à jour autorisées, les exclusions, et les options avancées.
L’objectif est d’automatiser les mises à jour sans compromettre le contrôle, tout en garantissant la sécurité, la stabilité et la propreté du système.
Déclencher les mises à jour automatiquement
Commencez par configurer le fichier suivant :
nano /etc/apt/apt.conf.d/20auto-upgrades
Ce fichier détermine les opérations exécutées par le service apt
de manière quotidienne.
Configuration minimale recommandée :
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "7";
Update-Package-Lists
: met à jour les index de paquets tous les jours.Download-Upgradeable-Packages
: télécharge automatiquement les mises à jour disponibles.Unattended-Upgrade
: installe automatiquement les mises à jour autorisées.AutocleanInterval
: supprime les paquets obsolètes une fois par semaine.
💡 À noter : Les directives APT::Periodic::*
acceptent des valeurs entières exprimées en nombre de jours.
0
: désactive complètement l’action.1
: exécute l’action tous les jours.7
: exécute l’action une fois par semaine.30
: une fois par mois.
Cela permet d’ajuster finement la fréquence de chaque tâche (mise à jour, nettoyage, téléchargement…) en fonction des besoins (poste personnel, serveur critique…).
Définir les dépôts autorisés pour les mises à jour
Ensuite, éditez le fichier :
nano /etc/apt/apt.conf.d/50unattended-upgrades
Repérez le bloc Allowed-Origins
, qui spécifie les sources considérées comme sûres pour les mises à jour automatiques :
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-backports";
};
-security
: active les mises à jour critiques de sécurité (indispensable).-updates
: active les mises à jour générales (bugfix, améliorations de stabilité).-backports
: optionnel, permet d’intégrer des versions plus récentes de certains paquets.
Par défaut, seul le dépôt -security
est activé. Pour un usage plus complet et moins contraignant, il est recommandé de décommenter la ligne -updates
.
Exclure certains paquets (optionnel) des mises à jour automatiques
Dans le même fichier, vous pouvez bloquer les mises à jour automatiques de certains paquets sensibles :
Unattended-Upgrade::Package-Blacklist {
"docker-ce";
"nvidia-driver-*";
};
Cela permet, par exemple, d’éviter les mises à jour automatiques de pilotes propriétaires, de conteneurs ou d’outils critiques nécessitant une validation manuelle.
Lister les paquets installés correspondant à un mot-clé
Pour identifier précisément les paquets installés à exclure (par exemple tous les pilotes NVIDIA), utilisez la commande suivante dans un terminal :
dpkg -l | grep nvidia
Cette commande affiche tous les paquets installés dont le nom contient le mot-clé “nvidia”, accompagnés de leur version et de leur état, exemple de sortie possible :
ii nvidia-driver-525 525.125.06-0ubuntu0 amd64 NVIDIA driver metapackage
ii libnvidia-gl-525 525.125.06-0ubuntu0 amd64 NVIDIA OpenGL/GLX libraries
ii nvidia-kernel-common 525.125.06-0ubuntu0 amd64 NVIDIA kernel module support files
Pour exclure tous ces paquets des mises à jour automatiques, il est recommandé d’utiliser un masque générique dans le bloc Unattended-Upgrade::Package-Blacklist
, comme suit :
Unattended-Upgrade::Package-Blacklist {
"nvidia-*";
};
Cette expression couvre tous les paquets dont le nom commence par « nvidia- » sans qu’il soit nécessaire de les lister individuellement.
Ajouter d’autres fonctionnalités
Toujours dans 50unattended-upgrades
, vous pouvez affiner le comportement du système :
Redémarrage automatique à une heure précise
Certaines mises à jour (noyau, glibc, etc.) nécessitent un redémarrage pour être effectives. Vous pouvez autoriser ce redémarrage automatique en le programmant à une heure précise :
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Notification par e-mail : recevoir un rapport de mise à jour
Pour recevoir un rapport de mise à jour par mail (utile sur les serveurs), activez :
Unattended-Upgrade::Mail "votremail@example.com";
Unattended-Upgrade::MailOnlyOnError "true";
⚠️ Le paquet mailx
doit être installé et correctement configuré pour l’envoi des mails.
Nettoyage des dépendances inutilisées
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Cette option automatise la suppression des dépendances devenues obsolètes, comme le ferait un apt autoremove
.
Dépannage : erreur ValueError: could not convert string to float: ‘6.06 LTS’
Si vous voyez apparaître ce message d’erreur lors de l’exécution de sudo dpkg-reconfigure --priority=low unattended-upgrades
cela signifie que le script système lsb_release.py
essaie de convertir une ancienne version Ubuntu mal formatée (ex. : 6.06 LTS
) en nombre. Ce bug, connu sur Ubuntu 22.04, provoque l’échec de la commande.
Solution : modifier le script Python concerné
- Ouvrez le fichier en root dans un éditeur :
sudo nano /usr/lib/python3/dist-packages/lsb_release.py
(Sur certaines configurations, le fichier peut se trouver dans /usr/share/pyshared/lsb_release.py
)
- Recherchez cette ligne :
RELEASES_ORDER.sort(key=lambda n: float(n[0]))
- Remplacez-la par :
RELEASES_ORDER.sort(key=lambda n: float(n[0].split()[0]))
Cette modification force le script à ne prendre en compte que la partie numérique avant « LTS » et évite ainsi l’erreur de conversion.