Maîtrisez le gestionnaire de paquets DNF
Mise à jour :
DNF est un gestionnaire de paquets utilisé principalement sur les distributions Linux Red Hat et ses dérivées, telles que Fedora, Red Hat Enterprise Linux (RHEL), Rocky Linux et AlmaLinux.
DNF utilise une résolution de dépendances optimisée, réduit la consommation mémoire et dispose d’une API Python améliorée pour une meilleure intégration dans les outils d’administration serveur. Il facilite l’installation, la mise à jour, la suppression et la recherche de logiciels tout en conservant un historique des transactions.
La syntaxe des commandes reste similaire à celle de YUM, ce qui rend la transition simple pour les utilisateurs habitués aux anciennes méthodes. Grâce à DNF, l’administration des systèmes devient plus rapide, plus sûre et plus flexible.
Un peu d’histoire
Sur les distributions Red Hat et dérivées, cette gestion a beaucoup évolué au fil des années pour répondre à des besoins croissants de fiabilité, de simplicité et d’automatisation.
Dès ses débuts, Red Hat Linux a introduit le format de paquet RPM (Red
Hat Package Manager), permettant l’installation, la mise à jour et la
suppression de logiciels via des fichiers .rpm
. Ce système reposait sur des
commandes comme :
rpm -ivh nom_du_paquet.rpm
Bien que puissant, le gestionnaire rpm ne gérait pas automatiquement les dépendances. Il fallait installer manuellement chaque dépendance dans le bon ordre, ce qui rendait les installations complexes et sujettes aux erreurs.
Pour résoudre ce problème, YUM (Yellowdog Updater, Modified) a été développé au début des années 2000. YUM apportait :
- La gestion automatique des dépendances
- L’accès à des dépôts distants
- La possibilité de faire des mises à jour en ligne
- Une interface en ligne de commande simple et scriptable
Commandes classiques avec YUM :
yum install httpdyum updateyum remove nginx
YUM a largement simplifié la vie des administrateurs système et est devenu la norme pendant plus d’une décennie sur Red Hat, CentOS et Fedora.
Vers 2015, Fedora a introduit DNF (Dandified YUM), destiné à remplacer progressivement YUM. Les motivations principales étaient :
- Améliorer la performance et la gestion des ressources
- Fournir une meilleure résolution des dépendances (grâce à libsolv)
- Offrir une API Python plus propre
- Introduire une meilleure gestion des transactions et un historique fiable
RHEL 8 a officialisé le passage à DNF comme gestionnaire par défaut, suivi de CentOS Stream et des distributions compatibles comme AlmaLinux et Rocky Linux.
Les commandes essentielles de DNF
DNF facilite la gestion quotidienne des logiciels sous Linux. Voici les commandes essentielles à connaître pour administrer efficacement un système.
-
Installer un paquet
Terminal window dnf install nom_du_paquetExemple :
Terminal window dnf install nginxExclure certains paquets lors de la mise à jour :
Terminal window dnf --exclude=nom_du_paquet updateExemple avec joker :
Terminal window dnf --exclude=kernel\* update -
Supprimer un paquet
Terminal window dnf remove nom_du_paquetExemple :
Terminal window dnf remove nginx -
Mettre à jour tous les paquets
Terminal window dnf update -
Mettre à jour un paquet spécifique
Terminal window dnf update nom_du_paquet -
Rechercher un paquet
Terminal window dnf search mot_cléExemple :
Terminal window dnf search apache -
Trouver un paquet fournissant un fichier :
Pour trouver quel paquet fournit un fichier donné :
Terminal window dnf provides /chemin/vers/fichierExemple :
Terminal window dnf provides /usr/bin/python3 -
Afficher les informations sur un paquet
Terminal window dnf info nom_du_paquetExemple :
Terminal window dnf info nginx -
Trouver les paquets qui dépendent d’un autre :
Pour lister les paquets qui dépendent d’un paquet spécifique :
Terminal window dnf repoquery --whatrequires nom_du_paquetExemple :
Terminal window dnf repoquery --whatrequires nom_du_paquet -
Trouver les paquets explicitement installés :
Pour lister les paquets installés explicitement (non en tant que dépendances) :
Terminal window dnf repoquery --userinstalled
Ces commandes couvrent l’essentiel pour installer, supprimer, rechercher et mettre à jour vos logiciels avec DNF.
Gestion des groupes de paquets
DNF permet de manipuler des groupes de paquets, un ensemble cohérent de logiciels souvent utilisés ensemble, simplifiant ainsi l’installation de fonctionnalités complètes.
Liste des groupes disponibles
Pour afficher tous les groupes disponibles dans les dépôts :
dnf group list
La liste est souvent classée en catégories : installés, disponibles et environnementaux (comme “Serveur Web”, “Environnement de bureau GNOME”).
Installation d’un groupe de paquets
Pour installer un groupe entier de logiciels :
dnf group install "nom_du_groupe"
Exemple :
dnf group install "Web Server"
DNF installe tous les paquets principaux et optionnels associés au groupe. Il est possible de n’installer que les paquets principaux en ajoutant l’option :
dnf group install "Web Server" --no-packages
Suppression d’un groupe de paquets
Pour supprimer un groupe de logiciels et leurs dépendances :
dnf group remove "nom_du_groupe"
Exemple :
dnf group remove "Web Server"
Cela désinstalle les paquets liés au groupe, mais certains paquets déjà utilisés par d’autres logiciels resteront présents pour ne pas casser le système.
Informations sur un groupe
Pour afficher les détails d’un groupe spécifique :
dnf group info "nom_du_groupe"
Exemple :
dnf group info "Development Tools"
Configuration de DNF
DNF est conçu pour être flexible et personnalisable. Voici comment configurer et optimiser son utilisation.
Fichier de configuration principal
Le fichier global de configuration est :
/etc/dnf/dnf.conf
Exemple de directives utiles à personnaliser :
fastestmirror=Truemax_parallel_downloads=10keepcache=True
- fastestmirror : sélectionne automatiquement le miroir le plus rapide.
- max_parallel_downloads : télécharge plusieurs paquets en parallèle.
- keepcache : conserve les paquets téléchargés pour une réutilisation locale.
Modifier ces paramètres peut améliorer considérablement les performances de vos installations et mises à jour.
Gestion des dépôts
Les dépôts sont des sources où DNF récupère les paquets. Par défaut, plusieurs dépôts officiels sont configurés, mais il est possible d’en ajouter ou de modifier ceux existants.
Pour lister les dépôts actifs :
dnf repolist
Pour ajouter un nouveau dépôt, créer un fichier .repo
dans /etc/yum.repos.d/
:
sudo nano /etc/yum.repos.d/mon_depot.repo
Exemple de contenu :
[mon_depot]name=Mon Dépôt Personnelbaseurl=http://monserveur/depot/enabled=1gpgcheck=1gpgkey=http://monserveur/depot/RPM-GPG-KEY
enabled=1
active le dépôtgpgcheck=1
active la vérification de signature des paquets
Pour désactiver temporairement un dépôt lors d’une installation :
dnf install nom_paquet --disablerepo=nom_du_depot
Vérification et nettoyage de la configuration
Pour vérifier l’état du système de dépôts et détecter les anomalies :
dnf repolist all
Pour nettoyer le cache de DNF et éviter les problèmes liés aux anciennes métadonnées :
dnf clean all
Un système propre et bien configuré garantit que DNF fonctionne de manière optimale et sécurisée.
Commandes avancées
DNF offre des fonctionnalités avancées pour affiner la gestion des paquets et garantir une administration plus précise du système.
Synchronisation de distribution
Pour aligner toutes les versions de paquets installés avec celles disponibles dans les dépôts :
dnf distro-sync
Cette commande installe ou rétrograde les paquets pour assurer une cohérence parfaite avec les versions disponibles officiellement.
Réinstallation de paquets
Pour réinstaller un paquet endommagé ou mal configuré :
dnf reinstall nom_du_paquet
Exemple :
dnf reinstall bash
Cette commande télécharge à nouveau le paquet depuis le dépôt et remplace les fichiers existants sans modifier les fichiers de configuration personnalisés.
Rétrogradation de paquets
Pour revenir à une version antérieure d’un paquet :
dnf downgrade nom_du_paquet
Exemple :
dnf downgrade nginx
Utile lorsqu’une nouvelle version provoque des instabilités.
Téléchargement de paquets sans installation
Pour seulement télécharger un paquet sans l’installer :
dnf download nom_du_paquet
Exemple :
dnf download nginx
Pratique pour transférer des paquets sur des systèmes air-gaped ou pour une installation manuelle ultérieure.
Nettoyage et maintenance du système
DNF propose plusieurs commandes pour maintenir un système propre, sécurisé et performant en éliminant les fichiers inutiles et en assurant l’intégrité des paquets.
Suppression des paquets inutilisés
Pour supprimer automatiquement les paquets installés en tant que dépendances mais devenus inutiles :
dnf autoremove
Cette commande libère de l’espace disque et réduit les risques de vulnérabilités en éliminant les bibliothèques obsolètes.
Nettoyage du cache
DNF conserve en cache les métadonnées et les paquets téléchargés pour accélérer les installations futures. Ce cache peut rapidement occuper beaucoup d’espace disque.
Pour supprimer tout le cache :
dnf clean all
Pour supprimer uniquement les métadonnées :
dnf clean metadata
Pour supprimer uniquement les paquets téléchargés :
dnf clean packages
Vérification des mises à jour de sécurité
Pour lister uniquement les mises à jour de sécurité disponibles :
dnf updateinfo list security
Pour appliquer uniquement les mises à jour de sécurité sans toucher aux autres mises à jour :
dnf update --security
Cela permet de maintenir le système sécurisé sans installer de nouvelles fonctionnalités qui pourraient introduire des risques.
Utilisation de plugins avec DNF
DNF dispose d’un système de plugins permettant d’étendre ses fonctionnalités de base. Certains plugins sont installés par défaut, d’autres peuvent être ajoutés selon les besoins spécifiques en administration serveur.
Présentation des plugins disponibles
Pour voir la liste des plugins activés sur votre système :
dnf config-manager --dump | grep plugin
Ou directement en consultant le répertoire :
ls /etc/dnf/plugins/
Chaque plugin offre des fonctionnalités supplémentaires comme la vérification de l’intégrité des paquets, la gestion automatique des mises à jour ou l’amélioration des performances réseau.
Installation de plugins utiles
Pour installer un plugin spécifique, par exemple dnf-plugins-core
(qui
contient plusieurs outils pratiques) :
dnf install dnf-plugins-core
Ce paquet regroupe plusieurs fonctionnalités supplémentaires, comme :
config-manager
pour gérer les dépôts facilementrepoclosure
pour vérifier les problèmes de dépendances dans les dépôtsneeds-restarting
pour savoir quels services doivent être redémarrés après une mise à jour
Exemple pour vérifier les paquets nécessitant un redémarrage :
dnf needs-restarting
Activation et configuration des plugins
L’utilisation des plugins est contrôlée dans le fichier :
/etc/dnf/dnf.conf
Pour activer tous les plugins :
plugins=1
Pour désactiver tous les plugins :
plugins=0
Certains plugins disposent également de leur propre fichier de configuration
dans /etc/dnf/plugins/
.
Utiliser le plugin config-manager
Le plugin config-manager
permet de gérer facilement les dépôts et les
sources de logiciels. Il est particulièrement utile pour activer ou désactiver
des dépôts sans modifier manuellement les fichiers .repo
.
-
Activer un dépôt :
Terminal window dnf config-manager --set-enabled nom_du_dépôt -
Désactiver un dépôt :
Terminal window dnf config-manager --set-disabled nom_du_dépôt
Automatisation avec DNF
dnf-automatic est un outil intégré à dnf-plugins-core permettant de gérer finement les mises à jour automatiques.
Installation :
dnf install dnf-automatic
Configuration du service :
sudo nano /etc/dnf/automatic.conf
Principales options à configurer :
[commands]upgrade_type = defaultrandom_sleep = 0download_updates = yesapply_updates = yes
[emitters]system_name = myserveremit_via = motd
[email]email_from = root@localhostemail_to = admin@example.comemail_host = localhost
Activation et démarrage automatique du service :
systemctl enable --now dnf-automatic.timer
Cela télécharge et applique automatiquement les mises à jour selon la configuration choisie.
Dépannage et résolution des problèmes
DNF offre plusieurs outils pour diagnostiquer et résoudre les problèmes liés à l’installation, à la mise à jour ou à la suppression de paquets sur un système Linux.
Lecture de l’historique des transactions
Pour consulter l’historique complet des opérations réalisées avec DNF :
dnf history
Chaque transaction est identifiée par un numéro d’ID unique. Pour obtenir les détails d’une transaction spécifique :
dnf history info ID
Exemple :
dnf history info 25
Pour annuler une transaction récente :
dnf history undo ID
Cela permet de restaurer l’état du système avant une mauvaise installation ou mise à jour.
Utilisation des logs pour diagnostiquer les erreurs
DNF enregistre toutes ses activités dans les fichiers journaux système,
accessibles via journalctl
.
Pour consulter les logs récents liés à DNF :
journalctl -u dnf
Pour filtrer les messages d’erreur récents :
journalctl -u dnf --priority=err
Résolution des conflits de dépendances
Lorsqu’une installation ou une mise à jour échoue à cause de conflits de dépendances, DNF fournit généralement un message d’erreur détaillé. Pour forcer la résolution :
- Essayer de désinstaller les paquets problématiques :
dnf remove paquet_conflit
- Utiliser
--best
pour forcer DNF à choisir les meilleures versions compatibles :
dnf install nom_paquet --best --allowerasing
- Synchroniser les versions de paquets avec le dépôt officiel :
dnf distro-sync
Cela peut corriger des incohérences dans les versions installées.
Contrôle de connaissances
Pourquoi ce contrôle ?
Cet contrôle va vous permettre de valider vos connaissances sur le sujet abordé dans le guide. Il comporte des QCM, des questions vrai/faux et des réponses ouvertes à un mot.
🕒 Le chronomètre commence dès que vous cliquez sur Démarrer le test. Vous devrez terminer l’examen avant la fin du temps imparti.
🎯 Pour réussir, vous devez obtenir au moins 80% de bonnes réponses.
💡 Je ne fournis pas directement les réponses aux questions. Cependant, si certaines sont complexes, des pistes d’explication pourront être proposées dans le guide ou après l’examen.
Bonne chance ! 🚀
Conclusion
DNF est aujourd’hui l’outil incontournable pour la gestion de paquets sur les distributions Linux basées sur RPM. Grâce à ses fonctionnalités avancées, sa rapidité et sa fiabilité, il facilite l’administration serveur au quotidien. Maîtriser DNF, c’est garantir un système mieux organisé, sécurisé et performant, tout en gagnant du temps dans les tâches répétitives d’installation, de mise à jour et de maintenance.
6. Installer les dépendances de construction
Installer les dépendances nécessaires pour construire un paquet :
dnf builddep nom_du_paquet
7. Utiliser uniquement le cache
Installer un paquet sans télécharger de nouvelles données :
dnf --cacheonly install nom_du_paquet