Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Linux et Mise en réseau Dernière mise à jour : 25 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

DNF est le système de gestion de paquets par défaut sur la plupart des distributions Linux basées sur RPM.

DNF télécharge les paquets depuis les dépôts, les installe, les désinstalle et les met à jour. Il effectue une résolution automatique des dépendances pour les paquets que vous installez, mettez à jour ou supprimez et installe tous les paquets nécessaires pour satisfaire aux exigences de dépendance.

Sur Fedora, il est le gestionnaire de paquets par défaut depuis Fedora 22.Sur RHEL 8.x, il est désormais le gestionnaire de paquets par défaut

DNF fournit une gestion sécurisée des paquets en activant la vérification des signatures GPG sur les paquets signés GPG. DNF n’installera aucun paquet qui n’est pas signé avec la bonne clé pour ce dépôt

Pour des raisons de compatibilité ascendante, RHEL 8.x dispose également d’une commande YUM, bien qu’il s’agisse d’un lien vers DNF

Pourquoi DNF ?

DNF ou Dandified YUM est la nouvelle génération de YUM. Par rapport à YUM, DNF a une meilleure utilisation de la mémoire, une meilleure gestion des dépendances et la capacité de fonctionner avec Python 2 et Python 3

Gestion des paquets avec DNF

Vous devez avoir les privilèges d’un superutilisateur pour utiliser la commande DNF afin d’installer, de mettre à jour ou de supprimer le paquetage. Vous trouverez ci-dessous un ensemble de commandes DNF fréquemment utilisées par les administrateurs système

Recherche d’un paquet

Pour rechercher un paquet installé ou disponible dans tous les dépôts, utilisez lacommande suivante

sudo dnf search <em>nom_du_paquet</em>

Par exemple, pour rechercher le paquet Nmap

$ sudo dnf search nmap
Dernière vérification de l'expiration des métadonnées : 0:05:14 ago on Tue 02 Jun 2020 08:38:09 PM UTC.
==================================== Nom correspondant exactement : nmap =====================================
nmap.x86_64 : Outil d'exploration du réseau et scanner de sécurité
=================================== Nom et résumé correspondant : nmap ====================================
nmap-ncat.x86_64 : Remplacement de Netcat par Nmap

Liste des paquets

Pour voir une liste de tous les paquets installés et disponibles

sudo dnf list all
Paquets installés
GConf2.x86_64 3.2.6-22.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms
NetworkManager.x86_64 1:1.22.8-4.el8 @anaconda
NetworkManager-libnm.x86_64 1:1.22.8-4.el8 @anaconda
NetworkManager-team.x86_64

1

:1.22.8-4.el8 @anaconda
NetworkManager-tui.x86_64

1

:1.22.8-4.el8
.

.
Pour lister tous les paquets installés

$ sudo dnf list installed

Paquets installés
NetworkManager.x86_64 1:1.22.8-4.el8 @anaconda
NetworkManager-libnm.x86_64 1:1.22.8-4.el8 @anaconda
NetworkManager-team.x86_64 1:1.22.8-4.el8 @anaconda
NetworkManager-tui.x86_64 1:1.22.8-4.el8 @anaconda
PackageKit.x86_64 1.1.12-4.el8 @AppStream
PackageKit-glib.x86_64 1.1.12-4.el8 @AppStream
WALinuxAgent.noarch 2.2.38-1.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms
abattis-cantarell-fonts.noarch 0.0.25-4.el8 @AppStream
acl.x86_64 2.2.53-1.el8 @anaconda
... 

Pour lister tous les paquets disponibles

sudo dnf list available
Dernière vérification de l'expiration des métadonnées : il y a 1:15:10 le Tue 02 Jun 2020 05:37:11 PM UTC.
Paquets disponibles
CUnit.i686 2.1.3-17.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms
CUnit.x86_64 2.1.3-17.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms
CUnit-devel.i686

2

.1.3-17.el8 rhui-codeready-builder-for-rhel-8-x86_64-rhui-rpms
CUnit-devel.x86_64

2

.1.3-17.el8 rhui-codeready-builder-for-rhel-8-x86_64-rhui-rpms
.

.
Par exemple, pour lister tous les paquets MySQL disponibles

$ sudo dnf list available "mysql*"
Dernière vérification de l'expiration des métadonnées : il y a 1:17:04 le Tue 02 Jun 2020 05:37:11 PM UTC.
Paquets disponibles
mysql.x86_64 8.0.17-3.module el8.0.0 3898 e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms
mysql-common.x86_64 8.0.17-3.module el8.0.0 3898 e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms
mysql-devel.x86_64 8.0.17-3.module el8.0.0 3898 e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms
mysql-errmsg.x86_64 8.0.17-3.module el8.0.0 3898 e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms
mysql-libs.x86_64 8.0.17-3.module el8.0.0 3898 e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms
mysql-server.x86_64 8.0.17-3.module el8.0.0 3898 e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms
mysql-test.x86_64

8

.0.17-3.module el8.0.0 3898 e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms

Affichage des informations sur les paquets

Pour afficher des informations sur un paquetage

$ sudo dnf info <em>nom_du_paquet
</em>

Par exemple, pour afficher des informations sur le serveur httpd :

$ sudo dnf info httpd
Dernière vérification de l'expiration des métadonnées : 0:15:04 ago on Mon 01 Jun 2020 11:23:11 PM UTC.
Paquets disponibles
Nom : httpd
Version : 2.4.37
Release : 21.module el8.2.0 5008 cca404a3
Architecture : x86_64
Taille : 1.4 M
Source : httpd-2.4.37-21.module el8.2.0 5008 cca404a3.src.rpm
Dépôt : rhui-rhel-8-for-x86_64-appstream-rhui-rpms
Résumé : Apache HTTP Server
URL : https://httpd.apache.org/
Licence : ASL 2.0
Description : Apache HTTP Server est un serveur web puissant, efficace et extensible

Installation des paquets

Installation d’un seul paquet

Pour installer un seul paquet et toutes ses dépendances non installées

$ sudo dnf install nom_du_paquet

Par exemple, pour installer Nginx

$ sudo dnf install nginx
Dépendances résolues.
===========================================================================================
 Package Arch Version Repository Size
===========================================================================================
Installer :
 nginx x86_64 1:1.14.1-9.module el8.0.0 4108 af250afe
 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 570 k
Installation des dépendances :
 gd x86_64 2.

2.

5-6.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 144 k
 jbigkit-libs x86_64 2.1-14.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 55 k
..

Ceci installera Nginx et toutes ses dépendances non installées

Installation de plusieurs paquets

Vous pouvez également installer plusieurs paquets en ajoutant les noms des paquets à cette commande.Par exemple, pour installer Nginx, PHP et MySQL-server, entrez

$ sudo dnf install nginx php mysql-server
Dépendances résolues.
===========================================================================================
 Package Arch Version Repository Size
===========================================================================================
Installer :
 mysql-server x86_64 8.0.17-3.module el8.0.0 3898 e09bb8de
 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 22 M
 nginx x86_64 1:1.14.1-9.module el8.0.0 4108 af250afe
 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 570 k
 php x86_64 7.2.24-1.module el8.2.0 4601 7c76a223
 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 1.5 M
Installation des dépendances :
 apr x86_64 1.6.3-9.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 125 k
 apr-util x86_64 1.6.1-6.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 105 k
 gd x86_64 2.

2.

5-6.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 144 k
 httpd x86_64 2.4.37-21.module el8.2.0 5008 cca404a3
 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 1.4 M
 httpd-filesystem noarch 2.4.37-21.module el8.2.0 5008 cca404a3
.

.

Installation d’un paquet par son nom de fichier binaire

Si vous connaissez le nom du fichier binaire à installer, mais pas le nom du paquetage, cela suffit pour installer le paquetage correspondant

Par exemple, si vous entrez

$ sudo dnf install /usr/sbin/named
Dernière vérification de l'expiration des métadonnées : il y a 1:21:25 le Tue 02 Jun 2020 05:37:11 PM UTC.
Dépendances résolues.
=====================================================================================================
 Package Arch Version Repository Size
=====================================================================================================
Installing :
 bind x86_64 32:9.

11.

13-5.el8_2 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 2.1 M

Résumé des transactions
=====================================================================================================
Installer 1 paquet

Taille totale du téléchargement : 2.1 M
Taille de l'installation : 4.5 M
Est-ce correct [y/N]

DNF recherche et trouve le paquet qui fournit /usr/sbin/namedet vous invite à l’installer

Recherche du paquet propriétaire d’un fichier

Si vous connaissez le nom du fichier et que vous voulez savoir quel paquet le fournit (installé ou non), utilisez

sudo dnf provides <em>nom_du_fichier</em>

Par exemple, pour savoir quel paquet fournit named, le binaire pour le serveur DNS, utilisez : $ sudo dnf provides file_name :

$ sudo dnf provides named
Dernière vérification de l'expiration des métadonnées : il y a 1:27:30 le Lun 01 Jun 2020 11:23:11 PM UTC. 
bind-32:9.11.4-16.P2.el8.x86_64 :
The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) :
server Repo : rhui-rhel-8-for-x86_64-appstream-rhui-rpms Matched from : Filename :

/usr/sbin/named

Suppression d’un paquet

Pour supprimer un paquetage

sudo dnf remove <em>nom_du_paquet</em>

Mais attention, DNF n’est pas capable de supprimer un paquet sans supprimer également les paquets qui en dépendent. Pour supprimer le paquet nmap, utilisez

$ sudo dnf remove nmap
Dépendances résolues.
=====================================================================================================
 Package Architecture Version Repository Size
=====================================================================================================
Suppression :
 nmap x86_64

2

:7.70-5.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms 24 M

Transaction Summary
=====================================================================================================
Remove 1 Package

Freed space : 24 M
Is this ok [y/N]

Gestion des groupes de paquets

Un groupe de paquets est une collection de paquets étroitement liés et servant un objectif commun. L’installation d’un groupe de paquets installe un ensemble de paquets, ce qui permet de gagner beaucoup de temps

Lister tous les groupes de paquets

Pour afficher la liste de tous les groupes de paquets

sudo dnf group list
Groupes d'environnements disponibles :
 Serveur avec interface graphique
 Serveur
 Station de travail
 Système d'exploitation personnalisé
 Hôte de virtualisation
Groupes d'environnements installés :
 Installation minimale
Groupes installés :
 Outils de sécurité
 Gestion des conteneurs
Groupes disponibles :
 Compatibilité avec les anciens systèmes UNIX
 Outils de développement
 Support scientifique
.NET Core Development
 Outils d'administration graphique
 Headless Management
 Outils de développement RPM
 Serveurs réseau
 Outils système
 Prise en charge des cartes à puce

Liste de tous les paquets d’un groupe

Pour lister tous les paquets d’un groupe

sudo dnf group info <em>nom_du_paquet</em>

Par exemple, pour afficher les paquets du groupe Outils de sécurité

$ sudo dnf group info "security tools


Groupe : Outils de sécurité
 Description : Outils de sécurité pour la vérification de l'intégrité et de la confiance.
 Paquets par défaut :
 scap-security-guide
 Paquets optionnels :
 aide
 hmaccalc
 openscap
 openscap-engine-sce
 openscap-utils
 scap-security-guide-doc
 scap-workbench
 tpm-quote-tools
 tpm-tools
 tpm2-tools
 pantalons

Installation d’un groupe de paquets

L’installation d’un groupe de paquets permet d’installer tous les paquets qu’il contient. Pour installer un groupe de paquets, utilisez

sudo dnf group install <em>nom_du_groupe_de_paquets</em>

Par exemple, pour installer le groupe “Network Servers”

sudo dnf group install "Network Serv

ers”


Dernière vérification de l'expiration des métadonnées : il y a 1:40:14 le Wed 03 Jun 2020 05:53:11 PM UTC.
Dépendances résolues.
===========================================================================================
 Architecture du paquetage Version Taille du référentiel
===========================================================================================
Installation des groupes :
 Network Servers

Transaction Summary
===========================================================================================

Est-ce que c'est ok [y/N]

Suppression d’un groupe de paquets

Pour supprimer un groupe de paquets :

sudo dnf remove <em>nom_du_paquet</em>

Ainsi, pour supprimer le groupe de paquets “Security Tools” :

$ sudo dnf group remove "security tools"
Dépendances résolues.
=====================================================================================================
 Package Arch Version Repository Size
=====================================================================================================
Suppression de :
 scap-security-guide noarch 0.1.48-7.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms 182 M
Suppression des dépendances inutilisées :
 GConf2 x86_64 3.2.6-22.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms 6.3 M
 libxslt x86_64 1.1.32-4.el8 @rhui-rhel-8-for-x86_64-baseos-rhui-rpms 734 k
 openscap x86_64 1.3.2-6.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms 58 M
 openscap-scanner x86_64 1.3.2-6.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms 137 k
 xml-common noarch 0.6.3-50.el8 @rhui-rhel-8-for-x86_64-baseos-rhui-rpms 78 k
Suppression des groupes :
 Security Tools

Transaction Summary
=====================================================================================================
Remove 6 Packages

Freed space : 247 M
Is this ok [y/N]  

Mise à jour des paquets

Mise à jour de tous les paquets

Pour mettre à jour tous les paquets et leurs dépendances, vous pouvez utiliser :

sudo dnf upgrade
Dernière vérification de l'expiration des métadonnées : il y a 1:09:31 le Tue 02 Jun 2020 08:38:09 PM UTC.
Dépendances résolues.
Rien à faire.
Terminé !

Ceci installe toutes les mises à jour qui peuvent être installées. Dnf upgrade et dnf update ont le même effet, mais dnf upgrade est préférable.

Mise à jour d’un seul paquet

Pour mettre à jour un seul paquet, exécutez

$ sudo dnf upgrade nom_du_paquet

Par exemple, pour mettre à jour le paquetage python

$ sudo dnf upgrade python

Conclusion

L’apprentissage de la DNF peut être gratifiant car c’est souvent le moyen le plus rapide d’effectuer des tâches d’administration système. Si vous souhaitez apprendre RHEL 8, vous pouvez consulter ce cours Udemy.

  • Vijay Khurana
    Auteur
Merci à nos sponsors
D'autres bonnes lectures sur Linux
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus