Gérez vos packages RPM avec DNF
Géestion des packages RPM avec DNF.

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.

Mise à jour de la liste des packages disponibles
sudo dnf makecache

Mise à 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.

Afficher les packages pouvant être mis à jour
sudo dnf check-update

Et ensuite procéder à la mise de l’ensemble des packages.

Mise à jour de l’ensemble des packages
sudo dnf upgrade

Ou, au besoin, ne mettre à jour que certains packages spécifiques.

Mise à jour de 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.

Recherche d’un package
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.

Installation d’un ou plusieurs packages
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.

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.

Désinstaller un ou plusieurs packages
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.

Afficher la liste des groupes de packages
sudo dnf group list

Afficher 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.

Afficher les informations d’un groupe
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.

Installer un groupe de package
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.

Désinstaller un groupe de packages
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.

Afficher la liste des dépôts actifs
sudo dnf repolist

Afficher la liste des packages disponibles

Nous pouvons également afficher la liste des dépôts disponible ou d’un dépôt spécifique

Afficher les packages disponibles dans l’ensemble des dépôts
sudo dnf list
Afficher les packages disponibles dans un dépôt spécifique
sudo 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.

Vider la cache de dnf
sudo dnf clean

Supprimer 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.

Supprimer les packages orphelins
sudo dnf autoremove

Mise 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

Afficher les packages disposants d’une mise à jour
sudo dnf check-update
sudo dnf upgrade

Aprè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.

Avant l’installation d’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.

Intégration du dépôt EPEL
sudo dnf install epel-release

Une fois installé, je peux désormais trouver htop dans les packages disponibles.

htop est disponible dans le dépôt EPEL
[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.

Installation des packages
sudo dnf install htop git python39 python39-pip

dnf 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é.

Vérification des packages
[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

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.