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
Section intitulée « 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.rpmBien 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 nginxYUM 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
Section intitulée « 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
Fenêtre de terminal dnf install nom_du_paquetExemple :
Fenêtre de terminal dnf install nginxExclure certains paquets lors de la mise à jour :
Fenêtre de terminal dnf --exclude=nom_du_paquet updateExemple avec joker :
Fenêtre de terminal dnf --exclude=kernel\* update -
Supprimer un paquet
Fenêtre de terminal dnf remove nom_du_paquetExemple :
Fenêtre de terminal dnf remove nginx -
Mettre à jour tous les paquets
Fenêtre de terminal dnf update -
Mettre à jour un paquet spécifique
Fenêtre de terminal dnf update nom_du_paquet -
Rechercher un paquet
Fenêtre de terminal dnf search mot_cléExemple :
Fenêtre de terminal dnf search apache -
Trouver un paquet fournissant un fichier :
Pour trouver quel paquet fournit un fichier donné :
Fenêtre de terminal dnf provides /chemin/vers/fichierExemple :
Fenêtre de terminal dnf provides /usr/bin/python3 -
Afficher les informations sur un paquet
Fenêtre de terminal dnf info nom_du_paquetExemple :
Fenêtre de terminal dnf info nginx -
Trouver les paquets qui dépendent d’un autre :
Pour lister les paquets qui dépendent d’un paquet spécifique :
Fenêtre de terminal dnf repoquery --whatrequires nom_du_paquetExemple :
Fenêtre de terminal 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) :
Fenêtre de terminal dnf repoquery --userinstalled
Ces commandes couvrent l’essentiel pour installer, supprimer, rechercher et mettre à jour vos logiciels avec DNF.
Gestion des groupes de paquets
Section intitulée « 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
Section intitulée « Liste des groupes disponibles »Pour afficher tous les groupes disponibles dans les dépôts :
dnf group listLa 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
Section intitulée « 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-packagesSuppression d’un groupe de paquets
Section intitulée « 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
Section intitulée « 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
Section intitulée « Configuration de DNF »DNF est conçu pour être flexible et personnalisable. Voici comment configurer et optimiser son utilisation.
Fichier de configuration principal
Section intitulée « Fichier de configuration principal »Le fichier global de configuration est :
/etc/dnf/dnf.confExemple 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
Section intitulée « 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 repolistPour ajouter un nouveau dépôt, créer un fichier .repo dans /etc/yum.repos.d/
:
sudo nano /etc/yum.repos.d/mon_depot.repoExemple de contenu :
[mon_depot]name=Mon Dépôt Personnelbaseurl=http://monserveur/depot/enabled=1gpgcheck=1gpgkey=http://monserveur/depot/RPM-GPG-KEYenabled=1active le dépôtgpgcheck=1active 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_depotVérification et nettoyage de la configuration
Section intitulée « 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 allPour nettoyer le cache de DNF et éviter les problèmes liés aux anciennes métadonnées :
dnf clean allUn système propre et bien configuré garantit que DNF fonctionne de manière optimale et sécurisée.
Commandes avancées
Section intitulé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
Section intitulée « Synchronisation de distribution »Pour aligner toutes les versions de paquets installés avec celles disponibles dans les dépôts :
dnf distro-syncCette commande installe ou rétrograde les paquets pour assurer une cohérence parfaite avec les versions disponibles officiellement.
Réinstallation de paquets
Section intitulée « Réinstallation de paquets »Pour réinstaller un paquet endommagé ou mal configuré :
dnf reinstall nom_du_paquetExemple :
dnf reinstall bashCette 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
Section intitulée « Rétrogradation de paquets »Pour revenir à une version antérieure d’un paquet :
dnf downgrade nom_du_paquetExemple :
dnf downgrade nginxUtile lorsqu’une nouvelle version provoque des instabilités.
Téléchargement de paquets sans installation
Section intitulée « Téléchargement de paquets sans installation »Pour seulement télécharger un paquet sans l’installer :
dnf download nom_du_paquetExemple :
dnf download nginxPratique pour transférer des paquets sur des systèmes air-gaped ou pour une installation manuelle ultérieure.
Nettoyage et maintenance du système
Section intitulée « 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
Section intitulée « Suppression des paquets inutilisés »Pour supprimer automatiquement les paquets installés en tant que dépendances mais devenus inutiles :
dnf autoremoveCette 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
Section intitulée « 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 allPour supprimer uniquement les métadonnées :
dnf clean metadataPour supprimer uniquement les paquets téléchargés :
dnf clean packagesVérification des mises à jour de sécurité
Section intitulée « Vérification des mises à jour de sécurité »Pour lister uniquement les mises à jour de sécurité disponibles :
dnf updateinfo list securityPour appliquer uniquement les mises à jour de sécurité sans toucher aux autres mises à jour :
dnf update --securityCela permet de maintenir le système sécurisé sans installer de nouvelles fonctionnalités qui pourraient introduire des risques.
Utilisation de plugins avec DNF
Section intitulée « 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
Section intitulée « Présentation des plugins disponibles »Pour voir la liste des plugins activés sur votre système :
dnf config-manager --dump | grep pluginOu 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
Section intitulée « Installation de plugins utiles »Pour installer un plugin spécifique, par exemple dnf-plugins-core (qui
contient plusieurs outils pratiques) :
dnf install dnf-plugins-coreCe paquet regroupe plusieurs fonctionnalités supplémentaires, comme :
config-managerpour gérer les dépôts facilementrepoclosurepour vérifier les problèmes de dépendances dans les dépôtsneeds-restartingpour 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-restartingActivation et configuration des plugins
Section intitulée « Activation et configuration des plugins »L’utilisation des plugins est contrôlée dans le fichier :
/etc/dnf/dnf.confPour activer tous les plugins :
plugins=1Pour désactiver tous les plugins :
plugins=0Certains plugins disposent également de leur propre fichier de configuration
dans /etc/dnf/plugins/.
Utiliser le plugin config-manager
Section intitulée « 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 :
Fenêtre de terminal dnf config-manager --set-enabled nom_du_dépôt -
Désactiver un dépôt :
Fenêtre de terminal dnf config-manager --set-disabled nom_du_dépôt
Automatisation avec DNF
Section intitulée « 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-automaticConfiguration du service :
sudo nano /etc/dnf/automatic.confPrincipales 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 = localhostActivation et démarrage automatique du service :
systemctl enable --now dnf-automatic.timerCela télécharge et applique automatiquement les mises à jour selon la configuration choisie.
Dépannage et résolution des problèmes
Section intitulée « 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
Section intitulée « Lecture de l’historique des transactions »Pour consulter l’historique complet des opérations réalisées avec DNF :
dnf historyChaque transaction est identifiée par un numéro d’ID unique. Pour obtenir les détails d’une transaction spécifique :
dnf history info IDExemple :
dnf history info 25Pour annuler une transaction récente :
dnf history undo IDCela permet de restaurer l’état du système avant une mauvaise installation ou mise à jour.
Utilisation des logs pour diagnostiquer les erreurs
Section intitulée « 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 dnfPour filtrer les messages d’erreur récents :
journalctl -u dnf --priority=errRésolution des conflits de dépendances
Section intitulée « 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
--bestpour 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-syncCela peut corriger des incohérences dans les versions installées.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
Conclusion
Section intitulée « 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.