7 votes

CentOS yum -- problèmes préexistants rpmdb

Je tente d'installer git sur une boîte de développeur et j'obtiens le message suivant :

Vous pourriez essayer d'utiliser --skip-broken pour contourner le problème
** 3 problème(s) rpmdb préexistant(s) trouvé(s), le résultat de 'yum check' suit :
kernel-2.6.32-431.17.1.el6.x86_64 est en conflit avec bfa-firmware < ('0', '3.2.21.1', '2'): bfa-firmware-3.0.3.1-1.el6.noarch
kernel-firmware-2.6.32-431.17.1.el6.noarch est un doublon de kernel-firmware-2.6.32-358.23.2.el6.noarch
kernel-headers-2.6.32-431.17.1.el6.x86_64 est un doublon de kernel-headers-2.6.32-358.23.2.el6.x86_64

Comment puis-je résoudre cela ? Je ne suis pas très familier avec CentOS/RHEL

Merci

8voto

Ramazan Polat Points 1130

Cause principale

Une interruption dans le processus de mise à jour up2date ou yum a provoqué l'installation de plusieurs versions du même paquet.

Résolution

  1. Si le système est Red Hat Enterprise Linux 5 ou ultérieur, la commande package-cleanup peut être utilisée :

$ package-cleanup --dupes $ package-cleanup --cleandupes

La commande --dupes listera les paquets en double installés sur la machine, tandis que l'interrupteur --cleandupes supprimera les anciennes versions. La commande package-cleanup est fournie par le package yum-utils.

  1. Si package-cleanup ne fonctionne pas ou si le système est Red Hat Enterprise Linux 4, supprimez les paquets manuellement en utilisant rpm :

$ rpm -e --justdb -

L'interrupteur '--justdb' est utilisé pour garantir que la suppression du paquet ne supprime pas ses fichiers du système de fichiers, le supprimant uniquement de la base de données rpm.

Certains doublons peuvent ne pas être supprimés car ils sont requis par des paquets installés. Vous pouvez essayer --cleandupes avec --removenewestdupes, ou les examiner avec --dupes et les supprimer manuellement.

3voto

Sam Azer Points 101

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

0voto

Cheesy Points 111

Essayez d'exécuter la commande suivante

yum clean all
rpm --rebuilddb
yum update
yum clean all
yum reinstall glibc glibc-common libgcc
yum upgrade
yum install yum-utils
package-cleanup --problems
package-cleanup --dupes

0voto

pltm_dev Points 47

J'ai rencontré des problèmes similaires lors de la mise à jour des correctifs de sécurité sur RHEL7.8. La solution qui a fonctionné était d'activer tous les dépôts sur votre instance et de mettre à jour les packages glibc. Voici les étapes :

- Créer une sauvegarde de la configuration des dépôts

  # cp /etc/yum.repos.d/redhat-rhui.repo /tmp/

- Activer tous les dépôts

  # sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/redhat-rhui.repo

- Mettre à jour les packages glibc

  # yum update glibc*

- Revenir à la configuration des dépôts

  # yum clean all

  # cp /tmp/redhat-rhui.repo /etc/yum.repos.d/redhat-rhui.repo

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X