Lassé de devoir mettre régulièrement les mains dans le cambouis, il y a quelques mois, j'ai abandonné Arch Linux pour basculer sur Fedora, une distribution Linux plus grand publique, dont une des spécificités est de ne pas installer les mises à jour du système pendant son exécution, mais plutôt via un environnement spécifique et minimaliste dédié à cette tâche, ce qui rend le processus bien plus stable et sûr, puisqu'il élimine les bugs et plantages potentiels de l'environnement pendant la mise à jour de certains paquets sensibles. Si cela vous intéresse, How-To Geek y a consacré un article.
Dans les très grandes lignes, quand vous utilisez le système de mise à jour intégré à l'application Logiciels, voici ce qu'il se passe :
- Les mises à jour du système sont téléchargées et préparées
- L'utilisateurice est invité·e à redémarrer l'ordinateur
- Au redémarrage, Fedora passe dans un mode minimaliste et installe les mises à jour. À cet instant, l'affichage indique l'avancement de cette tâche.
- L'ordinateur redémarre à nouveau et redonne la main à l'utilisateurice, le système est prêt à être utilisé.
Notez que si vous décidez de ne pas redémarrer à l'étape 2, alors au moment d'éteindre l'ordinateur, une case à cocher est ajoutée à la boîte de dialogue de GNOME. Si elle est cochée (elle l'est par défaut), alors Fedora effectuera l'étape 3, puis s'éteindra.
À ce moment, il devient alors naturel de vouloir télécharger et préparer les mises à jour automatiquement afin de s'assurer que le système reste sécurisé. Malheureusement, aucune option dans ce sens existe dans Fedora. Pour obtenir ce résultat, j'ai donc créé un petit script que j'ai positionné dans /usr/bin/pkcon-auto, chargé de télécharger et préparer les mises à jour via l'outil pkcon (c'est ce logiciel qui est utilisé par Logiciels de GNOME) :
#!/bin/bash
pkcon refresh force -y
pkcon update --only-download -y
pkcon offline-get-prepared -y
Une fois ce script écrit, rendez-le exécutable avec chmox +x /usr/bin/pkcon-auto.
Vous pouvez le lancer et vérifier le bon fonctionnement : à la fin de son exécution, vous obtiendrez une liste des paquets en attente de mise à jour. Ouvrez ensuite la boîte de dialogue Éteindre de GNOME : une case à cocher est apparue et invite à installer les mises à jour !
Maintenant que cette commande est prête, nous allons configurer Systemd afin de faire en sorte que le script soit lancé au démarrage du système.
Pour commencer, créez un fichier de service nommé /etc/systemd/user/pkcon-auto.service :
[Unit]
Description="Prepare system updates"
[Service]
ExecStart=/usr/bin/pkcon-auto
puis un fichier de timer nommé /etc/systemd/user/pkcon-auto.timer :
[Unit]
Description="Prepare system updates weekly"
[Timer]
Persistent=true
OnBootSec=300 # le script sera lancé 5 minutes après le démarrage du système.
[Install]
WantedBy=timers.target
Il ne reste plus qu'à activer le timer :
systemctl --user enable --now pkcon-auto.timer
Vous pouvez vérifier que le timer a bien été lancé avec cette commande :
systemctl --user list-timers --all