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 http
installés et disponibles :
# 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. |
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" |
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 |
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 |
Recherche des paquets avec dnf search
incluant le mot-clé nmap
:
[root@SERVER01 ~]# dnf search nmap |
Obtenir plus d’informations sur nmap
avec dnf info
:
[root@SERVER01 ~]# dnf info nmap |
Installation de nmap
avec dnf install
:
[root@SERVER01 ~]# dnf install nmap |
Suppression du paquet nmap
mais répondre non à la confirmation. On constate que 1 paquet sera supprimé pour nmap
:
[root@SERVER01 ~]# dnf remove nmap |
Suppression du paquet tar
mais répondre non à la confirmation. On constate que 9 paquets seront supprimés pour tar
:
[root@SERVER01 ~]# dnf remove tar |
Lister tous les groupes de composants disponibles pour Security Tools
:
[root@SERVER01 ~]# dnf group list |
Updating Subscription Management repositories. |
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. |
Installation du groupe de composants Security Tools
avec dnf group install
:
[root@SERVER01 ~]# dnf group install "Security Tools" |
Updating Subscription Management repositories. |
Afficher l’historique des paquets avec dnf history
:
[root@SERVER01 ~]# dnf history |
Updating Subscription Management repositories. |
Afficher en détail la ligne 5 de l’historique avec dnf history info
:
[root@SERVER01 ~]# dnf history info 5 |
Updating Subscription Management repositories. |
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. |
[root@Redhat1-Test1 ~]# dnf history |
Updating Subscription Management repositories. |
Activation des dépots logiciels DNF
Ajouter un dépot perso avec dnf config-manager
:
[root@SERVER01 ~]# dnf config-manager --add-repo "http://my.website.org/rhel9.0/x86_64/MyAwesomeRepos/AwesomeSoft" |
Adding repo from: http://my.website.org/rhel9.0/x86_64/MyAwesomeRepos/AwesomeSoft |
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] |
Activer le dépot pour les mises à jour en créant un fichier /etc/yum.repos.d/errata.repo
:
[AwesomeSoft-updates] |
Lister tous les dépots avec dnf repolist all
:
[root@SERVER01 ~]# dnf repolist all |
repo id repo name status |
Désactivation du dépot AwesomeSoft-updates
avec dnf config-manager --disable
:
[root@SERVER01 ~]# dnf config-manager --disable AwesomeSoft-updates |
Listing du paquet AwesomeSoft-system
:
[root@SERVER01 ~]# dnf list AwesomeSoft-system |
Available Packages |
Installation du paquet AwesomeSoft-system
:
[root@SERVER01 ~]# dnf install AwesomeSoft-system |
Dependencies resolved. |
Vérification de l’installation du paquet AwesomeSoft-system
, la version du paquet est 1.0.0-1 :
[root@SERVER01 ~]# dnf list AwesomeSoft-system |
Installed Packages |
Activation du dépot logiciel AwesomeSoft-updates
avec dnf config-manager --enable
:
[root@SERVER01 ~]# dnf config-manager --enable AwesomeSoft-updates |
MAJ des paquets avec dnf update
:
[root@SERVER01 ~]# dnf update |
Dependencies resolved. |
Vérification, le paquet AwesomeSoft-system
a été mis à jour et son numéro version est maintenant 1.0.0-2 :
[root@SERVER01 ~]# dnf list AwesomeSoft-system |
Installed Packages |
Installation, vérification, mise à jour et suppression de paquets logiciels
Création d’un fichier /etc/yum.repos.d/errata.repo
contenant :
[errata] |
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. |
Installation de la dernière version de AwesomeSoft-system
:
[root@SERVER02 ~]# dnf install AwesomeSoft-system |
[...] |
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. |
Suppression du paquet cups
:
[root@SERVER02 ~]# dnf remove cups.x86_64 |
[...] |
Vérification que le paquet nuclear-script-1.0.0-1.noarch.rpm
est disponible :
[aline@SERVER02 ~]$ rpm -q -p nuclear-script-1.0.0-1.noarch.rpm -i |
Name : nuclear-script |
Installation du paquet nuclear-script-1.0.0-1.noarch.rpm
:
[aline@SERVER02 ~]$ sudo dnf install nuclear-script-1.0.0-1.noarch.rpm |
Last metadata expiration check: 0:46:55 ago on Sun 15 Sep 2024 07:21:37 AM EDT. |
Vérification de son installation :
[aline@SERVER02 ~]$ rpm -q nuclear-script |
nuclear-script-1.0.0-1.noarch |
Documentation
MAN dnf(1)
MAN dnf.conf(5)
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/configuring_basic_system_settings/index#managing-softwarepackages_configuring-basic-system-settings
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/htmlsingle/managing_software_with_the_dnf_tool/index#assembly_distribution-ofcontent-in-rhel-9_managing-software-with-the-dnf-tool