4.4.6. Mises à jour apportées au gestionnaire de paquets RPM (« RPM Package Manager »)

Red Hat Enterprise Linux 7 fournit une version mise à jour du gestionnaire de paquets RPM. Cette mise à jour inclut de nombreux changements apportés au comportement, ce qui peut affecter la migration.
  • Le détection de conflits est désormais plus stricte et plus correcte. Certains paquets qui auraient été installés sur Red Hat Enterprise Linux 6 ne le seront pas sur Red Hat Enterprise Linux 7 du fait de cette hausse de la sensibilité aux conflits.
  • Les paquets en conflit avec eux-mêmes peuvent désormais être installés, permettant aux utilisateurs de créer un comportement unique entre les différentes alternatives.
  • Les paquets rendus obsolètes par un paquet installé ne sont pas installés.
  • Les règles obsolètes incluent maintenant tous les paquets correspondants, sans prendre en considération les autres attributs, tels que l'architecture.
  • Les calculs des dépendances ne vont plus considérer les fichiers qui n'étaient pas installés ou les fichiers qui ont été remplacés comme fournis, comme ce fut le cas avec les options --nodocs, --noconfig, ou --force.
  • Il n'est plus nécessaire d'exécuter rm -f /var/lib/rpm/__db. manuellement lors de la reconstruction d'une base de données du gestionnaire de paquets RPM en panique (DB_RUNRECOVER).
  • Les clés publiques créées avec OpenPGP 3 ne sont plus prises en charge.
  • L'option --info fait désormais sortir des paires de balises-valeur individuelles par ligne afin de permettre une meilleure lecture par l'utilisateur. Tout script reposant sur l'ancien format --info doit être réécrit.
  • L'analyseur de spécifications est désormais plus strict et plus correct, certains fichiers de spécifications qui étaient acceptés pour échouer lors de l'analyse, ou retourner des erreurs.
  • %license peut maintenant être utilisé pour marquer les fichiers dans la section %files d'un fichier de spécifications en tant que licences devant être installées même lorsque --nodocs est spécifié.
  • Désormais, la comparaison de versions prend en charge l'opérateur tilde dpkg-style (~) pour mieux gérer les logiciels en version préliminaire. Par exemple, foo-2.0~beta1 est considéré plus ancien que foo-2.0, supprimant ainsi le besoin d'utiliser des astuces avec le champ Version pour gérer ces pratiques courantes sur les versions en amont.
  • Le générateur de dépendances automatique a été réécrit en un système basé sur règles personnalisable et extensible avec un filtre intégré.
Ceci inclut aussi les améliorations suivantes :
  • Il est désormais possible de rechercher les fichiers installés à partir d'un paquet (INSTFILENAMES), le nombre de liens physiques vers un fichier (FILENLINKS), les détails du système de contrôle de versions de paquets (VCS), et les raccourcis de chaînes de dépendances formatés (PROVIDENEVRS, REQUIRENEVRS, CONFLICTNEVRS, OBSOLETENEVRS).
  • De nombreuses nouvelles commandes sont fournies, y compris :
    • rpmkeys
    • rpmdb
    • rpmspec
    • rpmsign
  • Le gestionnaire de paquets RPM inclut désormais de nouveaux interrupteurs aux scriplets afin d'activer l'expansion macro du temps d'activité ou l'expansion queryformat du temps d'activité.
  • Les dépendances de scriptlet pré et post transaction peuvent désormais être exprimées correctement avec Requires(pretrans) et Requires(posttrans).
  • Le gestionnaire de paquets RPM inclut désormais la balise OrderWithRequires afin de permettre aux utilisateurs de fournir des informations sur l'ordre. Cette nouvelle balise utilise la même syntaxe que la balise « Requires » (« Requiert »), mais ne génère pas de dépendances. Si les paquets mentionnés sont présents dans la même transaction, les indices de l'ordre sont traités en tant que balise Requires lors du calcul de l'ordre des transactions.
  • Les continuations de lignes et les expansions dans les fichiers de spécifications ne sont plus limitées à une longueur spécifiée.
  • Le gestionnaire de paquets RPM permet maintenant aux utilisateurs de spécifier des informations de référentiel sur le contrôle des versions en amont.
  • Le gestionnaire de paquets RPM inclut désormais la macro %autosetup pour aider lors de l'automatisation du processus d'application de patchs.