DNF pour Dandified YUM (YUM vêtu en dandy 🤔 🤨) remplace maintenant YUM en tant que gestionnaire de packages dans RedHat 9. Les commandes DNF sont identiques à YUM.
DNF et rpm
Commande rpm :
bas niveau
utilisée pour installer des packages
ne résoud pas les dépendances
Commande dnf :
améliore l’installation et les MAJ
basés sur RPM
pour installer, MAJ, supprimer
pour obtenir des informations sur les packages et leurs dépendances
historique des transactions
Utilisation de dnf
Informations sur les packages
Afficher les packages installés et disponibles :
# dnf list
Afficher les packages httpinstallés et disponibles :
# dnf list 'http*' # dnf list http*
Rechercher des informations sur des packages :
# dnf search all 'Mot Clé'
Afficher des informations détaillées sur des packages :
# dnf info <Nom_package>
Rechercher des informations sur des packages en fonction d’un chemin :
# dnf provides /var/www/html
Affiche tous les noyaux installés et disponibles :
# dnf list kernel
Installation de packages
MAJ de tous les packages ET de leur dépendances :
# dnf update
MAJ d’un package ET de ses dépendances :
# dnf update <Nom_package>
Installer un package :
# dnf install <Nom_package>
Suppression de packages
Supprimer un package :
# dnf remove <Nom_package>
Historique des transactions
Toutes les tentatives d’installation et de suppression sont logguées dans /var/log/dnf.rpm.log.
Historique des installations et de suppressions :
# dnf history
Updating Subscription Management repositories. ID | Command line | Date and time | Action(s) | Altered --------------------------------------------------------------------------------- 3 | install http* | 2024-09-15 06:44 | Install | 90 2 | update | 2024-09-15 05:44 | I, U | 323 E< 1 | | 2024-01-03 12:01 | Install | 638 >E
Effacer l’historique :
# dnf history undo <numéro_history>
Les groupes de packages
Les groupes sont des ensembles de packages connexes et installés ensemble.
Lister tous les groupes existants :
# dnf group list
Il existe 3 groupes de packetages :
Mandatory
Default
Optional
# dnf group info "RPM Development Tools"
Group: RPM Development Tools Description: Tools used for building RPMs, such as rpmbuild. Mandatory Packages: redhat-rpm-config rpm-build Default Packages: rpmdevtools Optional Packages: rpmlint
L’installation d’un groupe de packages est la même que pour un unique package :
# dnf group install "RPM Development Tools"
Les modules
Il est possible d’installer un module plutot que des packages dans le but de CADRER ces derniers (exemple : pour bloquer un SQL en v15 et pas passer à la v16).
Afficher la liste des modules disponibles :
# dnf module list
Afficher la liste des flux de modules d’un module :
# dnf module list <module-name>
Afficher les détails d’un module :
# dnf module info <module-name>
Liste les paquets installés à partir du profil et du flux par défaut :
# dnf module info
Afficher le module qui fournit un paquet spécifique :
# dnf module provides <package>
/!\ Résumé des commandes
Commandes :
### Informations sur les packages # dnf list // Afficher les packages installés et disponibles # dnf list '<pattern>*' // Afficher les packages installés et disponibles # dnf search all 'Mot Clé' // Afficher des infos sur des packages # dnf info <Nom_package> // Afficher des infos détaillées sur des packages # dnf provides <PATH> // Afficher des infos sur des packages en fonction d'un chemin # dnf list kernel // Afficher tous les noyaux installés et disponibles
### Installation de packages # dnf update // MAJ de TOUS les packages + dépendances # dnf update <Nom_package> // MAJ d'un package + dépendances # dnf install <Nom_package> // Installation d'un package
### Suppression de packages # dnf remove <Nom_package> // Supprimer un package
### Historique # dnf history // Historique des installations et de suppressions # dnf history undo <num> // Effacer l'historique :
### Les groupes # dnf list // Liste les groupes de packages existants # dnf group info "<Groupe>" // Infos sur le groupe et les packages Mandatory, Default et Optional # dnf group install "<Groupe>" // Installation d'un groupe
### Les modules # dnf module list // Afficher la liste des modules disponibles # dnf module list <module-name> // Afficher la liste des flux de modules d'un module # dnf module info <module-name> // Afficher les détails d'un module # dnf module info // Liste les paquets installés à partir du profil et du flux par défaut # dnf module provides <package> // Afficher le module qui fournit un paquet spécifique
Fichiers :
/var/log/dnf.rpm.log // log de dnf
Cas pratiques
Installation et mise à jour de paquets
Exécution de la commande nmap qui n’est pas installée :
[root@SERVER01 ~]# nmap -bash: nmap: command not found
Recherche des paquets avec dnf search incluant le mot-clé nmap :
[root@SERVER01 ~]# dnf search nmap Updating Subscription Management repositories. Last metadata expiration check: 3:55:21 ago on Sun 15 Sep 2024 03:01:47 AM EDT. ================================== Name Exactly Matched: nmap =================================== nmap.x86_64 : Network exploration tool and security scanner ================================= Name & Summary Matched: nmap ================================== nmap-ncat.x86_64 : Nmap's Netcat replacement
Obtenir plus d’informations sur nmap avec dnf info :
[root@SERVER01 ~]# dnf info nmap Updating Subscription Management repositories. Last metadata expiration check: 3:56:51 ago on Sun 15 Sep 2024 03:01:47 AM EDT. Available Packages Name : nmap Epoch : 3 Version : 7.92 Release : 1.el9 Architecture : x86_64 Size : 5.6 M Source : nmap-7.92-1.el9.src.rpm Repository : rhel-9-for-x86_64-appstream-rpms Summary : Network exploration tool and security scanner URL : http://nmap.org/ License : Nmap Description : Nmap is a utility for network exploration or security auditing. It supports : ping scanning (determine which hosts are up), many port scanning techniques : (determine what services the hosts are offering), and TCP/IP fingerprinting : (remote host operating system identification). Nmap also offers flexible target : and port specification, decoy scanning, determination of TCP sequence : predictability characteristics, reverse-identd scanning, and more. In addition : to the classic command-line nmap executable, the Nmap suite includes a flexible : data transfer, redirection, and debugging tool (netcat utility ncat), a utility : for comparing scan results (ndiff), and a packet generation and response : analysis tool (nping).
Installation de nmap avec dnf install :
[root@SERVER01 ~]# dnf install nmap Updating Subscription Management repositories. Last metadata expiration check: 3:58:07 ago on Sun 15 Sep 2024 03:01:47 AM EDT. Dependencies resolved. =================================================================================================== Package Architecture Version Repository Size =================================================================================================== Installing: nmap x86_64 3:7.92-1.el9 rhel-9-for-x86_64-appstream-rpms 5.6 M
Freed space: 9.2 M Is this ok [y/N]: n Operation aborted.
Lister tous les groupes de composants disponibles pour Security Tools :
[root@SERVER01 ~]# dnf group list
Updating Subscription Management repositories. Last metadata expiration check: 0:43:20 ago on Sun 15 Sep 2024 07:21:37 AM EDT. Available Environment Groups: Server with GUI Minimal Install Workstation Virtualization Host Custom Operating System Installed Environment Groups: Server Installed Groups: Container Management Headless Management Available Groups: RPM Development Tools .NET Development Console Internet Tools Scientific Support Legacy UNIX Compatibility Smart Card Support Security Tools Graphical Administration Tools System Tools Network Servers Development Tools
Obtenir plus d’informations sur Security Tools avec dnf group info pour obtenir plus d’informations sur le groupe de composants :
[root@SERVER01 ~]# dnf group info "Security Tools"
Updating Subscription Management repositories. Last metadata expiration check: 0:45:15 ago on Sun 15 Sep 2024 07:21:37 AM EDT. Group: Security Tools Description: Security tools for integrity and trust verification. Default Packages: scap-security-guide Optional Packages: aide hmaccalc openscap openscap-engine-sce openscap-utils scap-security-guide-doc scap-workbench tpm2-tools tss2 udica
Installation du groupe de composants Security Tools avec dnf group install :
[root@SERVER01 ~]# dnf group install "Security Tools"
Updating Subscription Management repositories. Last metadata expiration check: 0:46:55 ago on Sun 15 Sep 2024 07:21:37 AM EDT. Dependencies resolved. ===================================================================================================== Package Architecture Version Repository Size ===================================================================================================== Installing group/module packages: scap-security-guide noarch 0.1.74-1.el9_4 rhel-9-for-x86_64-appstream-rpms 892 k Installing dependencies: openscap x86_64 1:1.3.10-2.el9_3 rhel-9-for-x86_64-appstream-rpms 2.0 M openscap-scanner x86_64 1:1.3.10-2.el9_3 rhel-9-for-x86_64-appstream-rpms 60 k Installing Groups: Security Tools
Afficher l’historique des paquets avec dnf history :
[root@SERVER01 ~]# dnf history
Updating Subscription Management repositories. ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------------------------- 5 | group install Security Tools | 2024-09-15 08:08 | Install | 4 4 | install nmap | 2024-09-15 07:03 | Install | 1 3 | install http* | 2024-09-15 06:44 | Install | 90 2 | update | 2024-09-15 05:44 | I, U | 323 E< 1 | | 2024-01-03 12:01 | Install | 638 >E
Afficher en détail la ligne 5 de l’historique avec dnf history info :
[root@SERVER01 ~]# dnf history info 5
Updating Subscription Management repositories. Transaction ID : 5 Begin time : Sun 15 Sep 2024 08:08:36 AM EDT Begin rpmdb : 9d91976ebf34d7f0020a4490957e13b355d8cd0498395eed62cfd3d35652483a End time : Sun 15 Sep 2024 08:08:40 AM EDT (4 seconds) End rpmdb : 584f11d0321478ad1b6cc1028cd4edbf74a1c7a1d1f0f545b3155eae66f8e94d User : root <root> Return-Code : Success Releasever : 9 Command Line : group install Security Tools Comment : Packages Altered: Install openscap-1:1.3.10-2.el9_3.x86_64 @rhel-9-for-x86_64-appstream-rpms Install openscap-scanner-1:1.3.10-2.el9_3.x86_64 @rhel-9-for-x86_64-appstream-rpms Install scap-security-guide-0.1.74-1.el9_4.noarch @rhel-9-for-x86_64-appstream-rpms Install @security-tools
Supprimer une ligne de l’historique avec dnf history undo, comme s’il s’agissait d’une installation, la commande va demander de désintaller :
[root@SERVER01 ~]# dnf history undo 4
Updating Subscription Management repositories. Last metadata expiration check: 0:58:22 ago on Sun 15 Sep 2024 07:21:37 AM EDT. Dependencies resolved. ============================================================================================== Package Architecture Version Repository Size ============================================================================================== Removing: nmap x86_64 3:7.92-1.el9 @rhel-9-for-x86_64-appstream-rpms 24 M
La commande a créé un fichier de repo dans /etc/yum.repos.d et il faut éditer le fichier pour modifier le paramètre gpgcheck=0 (désactiver la vérification de la clé GPG) :
[root@SERVER01 ~]# vim /etc/yum.repos.d/my.website.org_rhel9.0_x86_64_MyAwesomeRepos_AwesomeSoft.repo
[my.website.org_rhel9.0_x86_64_MyAwesomeRepos_AwesomeSoft] name=created by dnf config-manager from http://my.website.org/rhel9.0/x86_64/ MyAwesomeRepos/AwesomeSoft baseurl=http://my.website.org/rhel9.0/x86_64/MyAwesomeRepos/AwesomeSoft enabled=1 gpgcheck=0
Activer le dépot pour les mises à jour en créant un fichier /etc/yum.repos.d/errata.repo :
repo id repo name status my.website.org_rhel9.0_x86_64_MyAwesomeRepos_AwesomeSoft created by .... enabled [...] AwesomeSoft-updates AwesomeSoft updates enabled
Désactivation du dépot AwesomeSoft-updates avec dnf config-manager --disable :
Available Packages AwesomeSoft-system.noarch 1.0.0-1 my.website.org_rhel9.0_x86_64_MyAwesomeRepos_AwesomeSoft
Installation du paquet AwesomeSoft-system :
[root@SERVER01 ~]# dnf install AwesomeSoft-system
Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: AwesomeSoft-system noarch 1.0.0-1 content..._AwesomeSoft 3.7 k [...] Is this ok [y/N]: y [...] Installed: AwesomeSoft-system-1.0.0-1.noarch Complete!
Vérification de l’installation du paquet AwesomeSoft-system, la version du paquet est 1.0.0-1 :
Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Upgrading: AwesomeSoft-system noarch 1.0.0-2 AwesomeSoft-updates 7.5 k [...] Is this ok [y/N]: y [...] Complete!
Vérification, le paquet AwesomeSoft-system a été mis à jour et son numéro version est maintenant 1.0.0-2 :
Installation, vérification, mise à jour et suppression de paquets logiciels
Création d’un fichier /etc/yum.repos.d/errata.repo contenant :
[errata] name=Red Hat Updates baseurl=http://my.website.org/rhel9.0/x86_64/MyAwesomeRepos/errata enabled=1 gpgcheck=0
Listing des paquets disponibles pour le paquet AwesomeSoft-system :
[root@SERVER02 ~]# dnf list AwesomeSoft-system
Last metadata expiration check: 0:05:27 ago on Wed 27 Apr 2022 05:01:59 AM EDT. Available Packages AwesomeSoft-system.noarch 1.0.0-2 errata
Installation de la dernière version de AwesomeSoft-system :
[root@SERVER02 ~]# dnf install AwesomeSoft-system
[...] Total download size: 7.5 k Installed size: 300 Is this ok [y/N]: y [...] Complete!
Les imprimantes sont démomiaques. Pour lister et supprimer le paquet cups :
[root@SERVER02 ~]# dnf list cups
Last metadata expiration check: 0:08:02 ago on Wed 27 Apr 2022 05:01:59 AM EDT. Installed Packages cups.x86_64 1:2.3.3op2-13.el9 @rhel-9.0-for-x86_64-appstream-rpms
Suppression du paquet cups :
[root@SERVER02 ~]# dnf remove cups.x86_64
[...] Remove 46 Packages Freed space: 94 M Is this ok [y/N]: y [...] Complete!
Vérification que le paquet nuclear-script-1.0.0-1.noarch.rpm est disponible :