ATTENTION: Résoudre des problèmes tels que ceux-ci sera toujours à la fois dangereux et fastidieux. Veuillez comprendre que certains des packages de votre système sont critiques pour le bon fonctionnement du système. Apporter des modifications impliquant de tels packages peut être plus difficile. Assurez-vous de bien comprendre ce que vous envisagez de faire, soyez attentif aux détails, demandez de l'aide, faites des sauvegardes/ instantanés avant d'essayer quoi que ce soit car il est facile de rendre les choses pires au lieu de les améliorer. Pour certaines modifications, il peut être nécessaire de démarrer un disque de secours afin de ne pas dépendre du système que vous tentez de réparer.
--
Dans mon cas, j'ai constaté qu'il y avait un problème et que de nombreux packages avaient été mis à jour sans que les anciennes versions ne soient supprimées. Les tentatives de reconstruire la base de données RPM n'ont pas résolu le problème.
Une solution qui fonctionne est simplement de supprimer l'ancienne version et de réinstaller la nouvelle version.
En regardant la sortie d'erreur, chaque ligne dit essentiellement que Package de mise à jour est en double avec Package précédent, c'est-à-dire:
kernel-headers-2.6.32-431.17.1.el6.x86_64 est en double avec kernel-headers-2.6.32-358.23.2.el6.x86_64
La solution suivante fonctionne pour moi :
rpm --erase --nodeps --noscript kernel-headers-2.6.32-358.23.2.el6.x86_64
La commande indique à RPM de supprimer le Package précédent spécifique sans supprimer aucune dépendance ou exécuter aucun script associé à la tâche.
Ensuite, le package doit être réinstallé:
yum réinstaller kernel-headers
Cette fois, il n'est pas nécessaire de spécifier la version exacte du package car yum recherchera la version la plus récente et la réinstallera.
Yum affichera le résultat de son opération Yum Check à chaque exécution. Continuez à le faire jusqu'à ce qu'il n'y ait plus de packages en double répertoriés.
Notez que vous pouvez interroger directement la base de données RPM. Si vous voyez beaucoup de messages incluant la chaîne glibc, par exemple, vous pouvez obtenir une liste simple des packages qui ont cette chaîne dans leur nom de cette manière :
rpm -qa | grep glibc | trier
Cela pourrait vous donner quelque chose comme :
glibc-2.17-157.el7_3.5.x86_64
glibc-common-2.17-157.el7_3.4.x86_64
glibc-common-2.17-157.el7_3.5.x86_64
glibc-devel-2.17-157.el7_3.5.x86_64
glibc-headers-2.17-157.el7_3.5.x86_64
Maintenant, il est plus évident que la version précédente de glibc-common doit être supprimée :
rpm --erase --nodeps --noscript glibc-common-2.17-157.el7_3.4.x86_64
yum réinstaller glibc-common