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 dn
f.
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 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.
sudo dnf check-update
Et ensuite procéder à la mise de l’ensemble des packages.
sudo dnf upgrade
Ou, 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 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.
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 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
sudo dnf list
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.
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.
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
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
.
[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-release
Une 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
, python3
9, python39-pip
et git
.
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é.
[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”