DNF - Guide des commandes

DNF (Dandified Yum) est le gestionnaire de paquets par défaut dans certaines distributions Linux, telles que Fedora et RHEL (à partir de la version 8). Il succède à YUM en offrant une meilleure gestion des dépendances et une amélioration des performances du système de gestion des paquets.

Principales fonctionnalités de DNF : - Amélioration de la gestion des dépendances et des performances. - Support avancé des modules et des flux pour les environnements de développement. - Fonctionnalités d’automatisation pour la maintenance du système.

Options de base

Recherche et liste des paquets

Utilisez les commandes suivantes pour rechercher et lister les paquets disponibles ou installés :

Commandement

Description

dnf search <terme>

Recherchez un paquet en utilisant un terme dans le nom ou la description.

dnf repoquery <paquet>

Affiche les versions disponibles d’un paquet dans les dépôts.

dnf list

Liste les informations sur tous les paquets installés et disponibles.

dnf list --installed

Affiche uniquement les paquets installés.

dnf list --available

Affiche uniquement les paquets disponibles pour installation.

dnf repolist

Liste les dépôts activés sur votre système.

dnf repolist --disabled

Liste les dépôts désactivés sur votre système.

dnf repoinfo

Affiche des informations supplémentaires sur les référentiels activés.

dnf info <nom_du_paquet>

Affiche les détails d’un paquet (disponibilité, version, etc.).

Exemple :

$ dnf search apache
$ dnf list --installed | grep "openssl"

Mises à jour et informations sur les paquets

Les commandes suivantes permettent de lister les mises à jour disponibles en fonction de leur type : sécurité, correctifs, améliorations, ou nouveaux paquets :

Commandement

Description

dnf updateinfo list security

Liste les mises à jour de sécurité disponibles.

dnf updateinfo list bugfix

Liste les correctifs de bugs disponibles.

dnf updateinfo list enhancement

Liste les améliorations disponibles.

dnf updateinfo list newpackage

Liste les nouveaux paquets disponibles.

Référentiels dans RHEL 9

RHEL 9 distribue le contenu via plusieurs dépôts :

  • BaseOS : dépôt pour le système d’exploitation de base.

  • AppStream : inclut des applications supplémentaires, bases de données, langages d’exécution.

  • CodeReady Linux Builder : dépôt pour les paquets destinés aux développeurs (non pris en charge).

Les flux de modules (Application Streams) permettent d’accéder à plusieurs versions d’applications ou de langages dans AppStream. Utilisez DNF pour gérer les flux.

Gestion des modules et des flux

Les commandes suivantes permettent de gérer les modules, flux et profils de modules :

Commandement

Description

dnf module list

Liste des modules disponibles et de leur état.

dnf module info <module>

Affiche les détails d’un module spécifique.

dnf module list <module>

Montre l’état actuel du module spécifié.

dnf module info --profile <module>

Affiche les paquets recommandés pour différents profils d’un module.

dnf module enable <module>:stream

Active un flux spécifique d’un module sans installer de paquets.

dnf module install <module>:stream

Installe le flux avec un profil par défaut.

dnf module reset <module>

Réinitialise le module à l’état initial (désactive tous les flux).

Exemples :

$ dnf module list nodejs
$ dnf module enable nodejs:14
$ dnf module install nodejs:14/minimal

Installation de paquets

Utilisez ces commandes pour installer des paquets individuels ou multiples :

Commandement

Description

dnf install <paquet>

Installe un paquet, en résolvant les dépendances et flux nécessaires.

dnf install <paquet1> <paquet2>

Installe plusieurs paquets en une seule commande.

dnf install <paquet.arch>

Spécifie l’architecture d’un paquet à installer.

dnf install /path/to/dir/

Installe un paquet à partir d’un répertoire local.

Exemples :

$ dnf install httpd
$ dnf install httpd mariadb-server

Configuration de DNF

Les configurations DNF sont stockées dans /etc/dnf/dnf.conf et organisées en sections.

Principales commandes pour la configuration :

  • Voir la configuration actuelle : dnf config-manager --dump

  • Activer un plugin : dnf config-manager --enable <plugin_name>

Automatisation des mises à jour avec dnf-automatic

DNF Automatic permet d’automatiser le téléchargement et l’installation des mises à jour.

Commandement

Description

dnf install dnf-automatic

Installe DNF Automatic pour automatiser les mises à jour.

systemctl enable --now dnf-automatic.timer

Active le service pour des mises à jour automatiques.

Exemple de configuration pour un serveur de mise à jour hebdomadaire :

  1. Installez le paquet dnf-automatic.

    $ dnf install dnf-automatic
    
  2. Modifiez le fichier /etc/dnf/automatic.conf pour ajuster les paramètres (ex. : fréquence, types de mises à jour).

  3. Activez le service.

Suppression de paquets et modules

Pour supprimer des paquets ou modules, utilisez les commandes suivantes :

Commandement

Description

dnf remove <paquet>

Supprime un paquet et ses dépendances inutilisées.

dnf module remove --all <module>:stream

Supprime tous les paquets d’un flux de module spécifique.

Nettoyage et réinstallation

Ces commandes permettent de nettoyer le cache ou de réinstaller des paquets :

Commandement

Description

dnf autoremove

Supprime les paquets installés automatiquement en tant que dépendances.

dnf clean dbcache

Efface le cache de la base de données.

dnf reinstall <paquet>

Réinstalle un paquet sans modifier ses dépendances.

Gestion de l’historique des transactions

DNF permet la gestion de l’historique, utile pour les annulations ou la répétition de transactions passées.

Commandement

Description

dnf history list

Liste les transactions DNF récentes.

dnf history redo <ID>

Réapplique une transaction spécifique.

dnf history undo <ID>

Annule une transaction spécifique.

dnf history rollback <ID>

Revenir à un état précis dans l’historique des transactions.

Autres commandes utiles

Commandement

Description

dnf provides <fichier>

Affiche le paquet qui contient un fichier spécifique.

dnf whatprovides <fichier>

Affiche le paquet qui fournit un fichier ou une commande spécifique.

Meta

Auteur : Cbillet Date : 28/10/2024