Ubuntu : mettre à jour des paquets spécifiques ou des mises à jour de sécurité

Pour actualiser uniquement certains paquets installés sur Ubuntu, utilisez apt install --only-upgrade PACKAGE. Pour sélectionner les mises à jour de sécurité, vérifiez les sources autorisées dans unattended-upgrades, simulez la mise à jour, puis appliquez-la. Selon les dépendances ou les paramètres des paquets sélectionnés, d'autres paquets peuvent également être modifiés concomitamment.

Choses à vérifier avant la mise à jour

apt update récupère la liste des paquets depuis le dépôt mais n'effectue pas la mise à jour des paquets installés. L'installation et la mise à jour sont des tâches séparées. Avant d'appliquer la mise à jour, vérifiez les méthodes de sauvegarde et de récupération, l'espace disque et les interruptions de service potentielles, et planifiez l'heure de l'opération sur les serveurs de production.

sudo apt update
apt list --upgradable

Si la première commande échoue, résolvez les erreurs du dépôt et du réseau, puis actualisez de nouveau la liste. La deuxième commande affiche les paquets pouvant être mis à jour actuellement, mais cela ne signifie pas que tous les éléments de la liste sont des mises à jour de sécurité.

Mettre à jour un paquet spécifique

Les commandes ci-dessous utilisent curl comme exemple, en supposant qu'il soit déjà installé. Remplacez-le par le nom réel du paquet installé que vous souhaitez mettre à jour. Tout d'abord, vérifiez la version candidate, la source et les modifications prévues par APT.

apt-cache policy curl
sudo apt-get -s install --only-upgrade curl

-s est une exécution à blanc qui n'effectue pas l'installation. --only-upgrade n'installera pas de nouveau le paquet spécifié s'il n'est pas déjà installé. Cependant, il peut suggérer d'installer, de mettre à jour ou de supprimer d'autres paquets nécessaires à la mise à jour du paquet cible, il convient donc d'examiner l'ensemble du résultat. La version souhaitée peut ne pas être sélectionnée en fonction des paquets bloqués, des dépendances et de la priorité des dépôts.

Si les changements attendus sont appropriés, appliquez-les avec la commande suivante. Reconfirmez la liste des installations, mises à jour, suppressions et besoins en espace suggérés par APT, et si cela diffère de ce que vous attendez, arrêtez-vous à l'étape de confirmation.

sudo apt install --only-upgrade curl

Une fois terminé, vérifiez la version installée avec apt-cache policy curl et assurez-vous que le service ou l'application correspondant fonctionne correctement. Selon le paquet, un redémarrage du service ou du système peut être nécessaire.

Vérifiez les sources autorisées pour les mises à jour de sécurité

Contrairement à ce que suggère le nom, unattended-upgrade ne sélectionne pas toujours uniquement les mises à jour de sécurité. Selon les sources autorisées configurées, d'autres mises à jour peuvent également être installées. Tout d'abord, vérifiez si le paquet est installé et les paramètres APT actuels.

dpkg-query -W unattended-upgrades
apt-config dump | grep -E 'Unattended-Upgrade::(Allowed-Origins|Origins-Pattern|Automatic-Reboot|Remove-)'
apt-cache policy

S'il n'est pas installé, il peut être installé avec sudo apt install unattended-upgrades. Après l'installation, le calendrier de mise à jour automatique peut devenir actif, donc vérifiez la politique du serveur et les paramètres /etc/apt/apt.conf.d/20auto-upgrades existants. Comparez les informations du dépôt de apt-cache policy avec la liste autorisée et vérifiez également les paramètres de redémarrage automatique ou de suppression inutile de paquets. La liste peut combiner des valeurs provenant de plusieurs fichiers de configuration.

Si des sources en dehors du périmètre de sécurité, telles que -updates ou des dépôts externes, sont autorisées, vous devez ajuster les paramètres conformément à la politique de l'organisation avant d'exécuter la commande ci-dessous. Le dépôt de sécurité ESM d'Ubuntu Pro et les dépôts externes peuvent être des sources séparées, il est donc nécessaire de vérifier le périmètre de support et les sources pour s'assurer que les correctifs de sécurité requis ne sont pas manqués. Vous pouvez vérifier les sources par défaut et les paramètres de redémarrage dans Document de mise à jour automatique d'Ubuntu.

Exemple permettant uniquement les dépôts de sécurité Ubuntu généraux

L'exemple suivant montre une configuration qui ne permet que les dépôts de sécurité standard d'Ubuntu. Elle n'inclut pas ESM ou des dépôts externes, donc ne l'appliquez pas telle quelle dans des environnements nécessitant ces mises à jour. Comme il s'agit d'un paramètre persistant qui affecte également les mises à jour automatiques, enregistrez vos politiques existantes et assurez-vous qu'il ne soit pas en conflit avec d'autres outils de gestion de configuration avant de continuer.

Dans /etc/apt/apt.conf.d/, créez un nouveau fichier nommé 99local-security-only sans écraser un fichier existant, et enregistrez le contenu suivant. La liste APT conserve les entrées existantes lorsque de nouvelles sont simplement ajoutées, donc commencez par vider les deux listes. #clear est une directive de configuration APT, et non une invite de commande shell.

#clear Unattended-Upgrade::Allowed-Origins;
#clear Unattended-Upgrade::Origins-Pattern;
Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
};

D'autres fichiers peuvent ré-ajouter des sources plus tard, donc après avoir enregistré, vérifiez les sources réellement autorisées en utilisant le apt-config dump ci-dessus et les résultats du test à blanc. Le dépôt de sécurité doit être actif, et si les dépendances nécessaires ne peuvent pas être obtenues à partir des sources autorisées, certains paquets peuvent rester en attente. Pour revenir à cette configuration, supprimez uniquement le fichier créé par cette opération et vérifiez à nouveau la configuration et les résultats du test à blanc.

Test à blanc et vérification après application

La commande suivante est utilisée pour vérifier les sources autorisées et les paquets à traiter sans installer réellement les mises à jour. Passez en revue la sortie et les journaux pour repérer les sources inattendues, les éléments en attente et les erreurs.

sudo unattended-upgrade --dry-run --debug

L'exécution de la simulation ne garantit pas les résultats du travail réel. Vérifiez la source et la cible, les politiques de redémarrage/suppression automatiques, et exécutez la commande suivante uniquement pendant une fenêtre de maintenance appropriée.

sudo unattended-upgrade --verbose

Après l'achèvement, vérifiez les journaux dans /var/log/unattended-upgrades/ et le statut des services affectés, et si nécessaire, redémarrez à l'heure prévue. Commenter les dépôts dans sources.list peut négliger d'autres fichiers sources et dépendances, donc cette méthode n'est pas utilisée ici. Pour les options et chemins des journaux, consultez manuel Ubuntu unattended-upgrade.