Gérez vos packages RPM avec DNF
Si vous utilisez une distribution comme RedHat, Fedora, CentOS ou plus récemment Rocky Linux, vous disposez d’un système basé sur des packages de type RPM et comme pour tout système il vous faut un gestionnaire de packages qui vous permet d’installer, mettre à jour et supprimer les packages du système, et c’est justement le rôle de dnf.
dnf est le successeur de yum et s’utilise à peu de chose près de la même manière facilitant ainsi la transition entre les deux.
Dans les exemples de cet articles j’utiliserai la distribution Rocky Linux 8.8 basée sur le code de RedHat développée en réponse au changement de stratégie de RedHat qui annoncé l’arrêt du développement de CentOS dans sa forme actuelle.
Gestion des packages
Obtenir la liste des packages disponibles
Comme la plupart des gestionnaires de packages dnf utilise une cache locale contenant la liste des packages disponibles et les informations qui y sont associées. Nous devons donc nous assurer que cette cache est à jour lorsque nous utilisons dnf. Si vous faites une recherche de package ou une installation de package, en général dnf commencera automatiquement par télécharger les listes de packages depuis les sources activées, mais vous pouvez aussi le faire manuellement.
sudo dnf makecacheMise à jour des packages installés
Une des opérations les plus courante consiste à maintenir les packages installés à jour. dnf nous permet de mettre à jour l’ensemble des packages en une seule commande, ou alors, de mettre à jour un ou plusieurs packages spécifiques.
Nous pouvons commencer par afficher la liste des packages pouvant être mis à jour.
sudo dnf check-updateEt ensuite procéder à la mise de l’ensemble des packages.
sudo dnf upgradeOu, au besoin, ne mettre à jour que certains packages spécifiques.
sudo dnf upgrade <package1 [package_2 ... package_n]>Rechercher un package
Chaque package ou logiciel est identifié par un nom unique qui peut varier d’une distribution à l’autre. Heureusement, nous pouvons effectuer une recherche dans la liste des packages disponibles.
sudo dnf search <mots clés>Installer un package
Une fois le nom du package identifié, nous pouvons aussi faire appel à dnf pour l’installer. Comme la plupart des gestionnaires de packages, dnf s’occupe d’installer les dépendances nécessaires.
sudo dnf install <package_1 [package_2 ... package_n]>Afficher les informations d’un package
dnf nous permet aussi d’afficher les informations d’un package.
sudo dnf info <package>Supprimer un package
Tout ce qui peut être installé peut être désinstallé à l’aide de l’option remove.
sudo dnf remove <package_1 [package_2 ... package_n]>Utilisation des groupes de packages
dnf permet également de gérer des packages par groupes. Les groupes sont des ensembles de packages prédéfinis pour un type d’installation spécifique comme pour une station de travail, pour un serveur ou encore un serveur avec interface graphique.
Afficher la liste des groupes disponibles
Avant tout il nous faut connaître la liste des groupes de packages disponibles.
sudo dnf group listAfficher les informations d’un groupe de packages
Nous pouvons bien évidemment afficher les informations d’un groupe pour en savoir plus sur ce qu’il contient.
sudo dnf group info <groupe>Installer un groupe de package
L’installation d’un groupe de package est assez similaire à l’installation d’un package unique.
sudo dnf group install <groupe>Désinstaller un groupe de packages
La désinstallation d’un groupe de packages est également possible et de nouveau similaire à la suppression d’un package unique.
sudo dnf group remove <groupe>Utilisation avancée de DNF
dnf est un outil très complet, outre les manipulation de base présentées ci-dessous, nous avons à notre disposition une foule d’autres options disponibles.
Afficher la liste des dépôts
Les packages sont organisés dans différents dépôts. Nous pouvons obtenir la liste des dépôts actifs.
sudo dnf repolistAfficher la liste des packages disponibles
Nous pouvons également afficher la liste des dépôts disponible ou d’un dépôt spécifique
sudo dnf listsudo dnf list --repo <nom du dépôt>Vider la cache
Nous pouvons de temps à autre avoir besoin de vider la cache des informations des dépôts pour ensuite la recréer.
sudo dnf cleanSupprimer les packages orphelins
Il peut arriver qu’un package devienne orphelin, cela signifie simplement qu’il s’agit d’une dépendance d’autres packages mais que plus aucun package ne l’utilise. Ce package n’a donc plus de raison d’être et dnf nous permet de faire le ménage.
sudo dnf autoremoveMise en pratique
Je dispose ici d’un machine fraichement installée avec Rocky Linux 8.8 avec le profil « Serveur ». Je souhaite maintenant y intégrer des fonctions complémentaires:
- Des outils d’administrations (htop, …)
- Un interpréteur Python 3.9
- Git
Mise à jour du système
sudo dnf check-update
sudo dnf upgradeAprès quelques minutes le système est à jour, je peux passer à l’installation des packages désirés.
Installation du packages « epel-release »
Avec Rocky Linux 8.8, de base trois dépôts sont actifs: BaseOS, AppStream et Extra. Un utilitaire comme htop ne se trouve pas dans ces dépôts, il faut au préalable activer le dépôt EPEL (Extra Packages for Enterprise Linux). Rocky Linux dispose d’un package permettant d’installer et d’activer ce dépôt: epel-release.
[steve@just-sudo-it ~]$ sudo dnf search htop
Dernière vérification de l’expiration des métadonnées effectuée il y a 0:13:12 le lun. 07 août 2023 11:38:25 CEST.
Aucune correspondance trouvée.
[steve@just-sudo-it ~]$J’installe donc le package pour intégrer le dépôt EPEL.
sudo dnf install epel-releaseUne fois installé, je peux désormais trouver htop dans les packages disponibles.
[steve@just-sudo-it ~]$ sudo dnf search htop
Dernière vérification de l’expiration des métadonnées effectuée il y a 0:00:07 le lun. 07 août 2023 11:53:29 CEST.
========================================== Nom correspond exactement à : htop ==========================================
htop.x86_64 : Interactive process viewer
[steve@just-sudo-it ~]$Je peux maintenant procéder à l’installation des différents packages, à savoir htop, python39, python39-pip et git.
sudo dnf install htop git python39 python39-pipdnf va donc installer les packages spécifiés ainsi que toutes les dépendances nécessaires. Et une fois l’opération terminée il ne me reste plus qu’à confirmer que tout est bien installé.
[steve@just-sudo-it ~]$ htop --version
htop 3.2.1
[steve@just-sudo-it ~]$ git --version
git version 2.39.3
[steve@just-sudo-it ~]$ python3 --version
Python 3.9.16
[steve@just-sudo-it ~]$ pip3 --version
pip 20.2.4 from /usr/lib/python3.9/site-packages/pip (python 3.9)
[steve@just-sudo-it ~]$Conclusion
Gestionnaire de package très complet, dnf nous permet de gérer efficacement notre système, ses packages ainsi que l’installation ou la suppression de nouveaux packages et logiciels tout en gérant pour nous leurs dépendances.
Cet article n’est pas exhaustif, il reste encore énormément d’options et de sous-options non évoquées ici. Pour en savoir plus rien de tel qu’un petit tour dans man dnf!

0 Comments on “Gérez vos packages RPM avec DNF”