Pour que la plupart des paquets RPM fonctionnent, d’autres logiciels tels que des bibliothèques, des exécutables, etc. doivent être déjà installés sur le système, car si vous essayez d’installer un paquet avec RPM sans un paquet de dépendance, l’installation du paquet échoue avec un message d’erreur indiquant les composants nécessaires. Vous devez alors chercher le paquet qui contient les composants dont vous avez besoin. Cette situation est communément appelée « l’enfer des dépendances ». Au fur et à mesure que les applications basées sur des RPM, y compris Red Hat Linux, gagnaient en popularité, il est devenu plus important que jamais de rendre l’installation des paquets moins difficile. La réponse fut YUM. Mais il a rencontré quelques problèmes au bout d’un certain temps, et a donc été remplacé par un gestionnaire de paquets DNF plus rapide et plus performant.
Qu’est-ce que YUM ?
Le Yellowdog Updater, Modified (YUM) est un programme libre et gratuit développé à l’origine pour Yellowdog Linux, une distribution Linux aujourd’hui disparue. YUM est essentiellement un outil de gestion de paquets pour l’installation, la mise à jour et la suppression de paquets logiciels dans Red Hat Enterprise Linux. Il a été principalement conçu pour gérer efficacement les dépendances avec les paquets RPM. L’idée était de ne pas considérer les paquets RPM comme des composants individuels, mais comme des parties de dépôts de logiciels plus importants. L’un des principaux arguments de vente de YUM par rapport aux gestionnaires de paquets précédents est qu’il n’installe pas seulement les paquets que vous souhaitez installer, mais qu’il installe également automatiquement tous les paquets qui sont des prérequis pour les paquets que vous souhaitez installer. YUM a été écrit par Seth Vidal et Michael Stenner du département de physique de l’université Duke.
Qu’est-ce que le DNF ?
YUM a eu du succès, mais il a rencontré des problèmes au fur et à mesure qu’il prenait de l’âge. Il devenait lent et utilisait beaucoup de mémoire, et une grande partie de son code devait être réécrite. Il était inutile de continuer à développer YUM, c’est pourquoi la version suivante, très améliorée, du paquetage YUM a été introduite, avec des fonctionnalités plus avancées et plus robustes – le YUM Dandifié, mieux connu sous le nom de DNF. Pour la plupart des utilisateurs, le changement est superficiel et consiste à remplacer YUM par DNF dans les commandes. En comparaison directe, les améliorations en termes de performances, d’utilisation de la mémoire et de résolution des dépendances des paquets sont tout à fait significatives. La fonction DNF a remplacé YUM en tant que gestionnaire de paquets par défaut dans Fedora 22. L’une des principales différences est que DNF adhère à une API stricte, ce qui encourage le développement d’extensions et de plug-ins pour DNF.
Différence entre YUM et DNF
Résolution des dépendances
– Alors que l’objectif principal de YUM ou DNF est de gérer les paquets RPM sur votre système, DNF offre une meilleure résolution des dépendances parce qu’il utilise ‘libsolv’, plus moderne et plus avancé, pour améliorer la résolution des dépendances. Libsolv est une base de code éprouvée et l’une des implémentations de résolution de dépendances les plus sophistiquées. YUM, quant à lui, utilise l’API publique pour la résolution des dépendances.
API
– Alors que DNF maintient une compatibilité de ligne de commande de base avec YUM, l’un des principaux points de distinction est que DNF adhère à une API stricte et que cette API encourage le développement d’extensions et de plug-ins pour DNF. L’API est également très bien documentée, ce qui facilite la mise en œuvre de nouvelles fonctionnalités. L’API de YUM n’est pas aussi bien documentée que celle de DNF, il est donc difficile de créer de nouvelles fonctionnalités.
Performance
– Le gestionnaire de paquets DNG a remplacé YUM parce que de nombreux problèmes de longue date avec YUM n’ont pas été résolus. YUM était lent et utilisait beaucoup de mémoire, et une grande partie de son code devait être réécrit. En comparaison, DNF utilise très peu de mémoire lors de la synchronisation des métadonnées des dépôts, contrairement à YUM qui est connu pour son utilisation excessive de la mémoire. De plus, YUM ralentissait lorsqu’il s’agissait de résoudre des dépendances. DNF a des fonctionnalités plus nombreuses et meilleures que celles de YUM.
Résumé
Bien que l’utilisateur final ne puisse pas remarquer beaucoup de différences entre les deux gestionnaires de paquets, sous le capot, il y a en fait beaucoup de différences fonctionnelles à trouver. Les principales différences entre YUM et DNF se situent principalement au niveau des performances, de l’utilisation de la mémoire et de la façon dont le code a été réécrit pour permettre aux développeurs de maintenir une API documentée et prévisible. Une autre différence est que DNF est compatible avec Python3 alors que YUM ne l’est pas. De plus, l’algorithme de dépendance des paquets a été entièrement réécrit. Par ailleurs, l’objectif principal de YUM ou de DNF est de gérer les paquets RPM sur votre système.
Que signifie DNF pour YUM ?
DNF est l’abréviation de Dandified YUM et est en fait la version la plus avancée et la meilleure du paquetage YUM original. DNF a remplacé YUM comme gestionnaire de paquets par défaut dans Fedora 22.
Est-ce que Rhel 8 utilise DNF ?
Oui, c’est le nouveau gestionnaire de paquets utilisé pour installer les paquets sur RHEL 8.