Yum dice que un package está instalado y no instalado, y está bloqueando la installation de otros packages

Estoy tratando de instalar un nuevo package ( glibc-static ), y aparece el siguiente error

 ---> Package nss-softokn-freebl.i686 0:3.14.3-18.el6_6 will be installed --> Finished Dependency Resolution Error: Package: glibc-2.12-1.149.el6.i686 (CentOS-OS) Requires: glibc-common = 2.12-1.149.el6 Installed: glibc-common-2.12-1.149.el6_6.5.x86_64 (@updates) glibc-common = 2.12-1.149.el6_6.5 Available: glibc-common-2.12-1.149.el6.x86_64 (CentOS-OS) glibc-common = 2.12-1.149.el6 Error: Package: glibc-devel-2.12-1.149.el6.i686 (CentOS-OS) Requires: glibc-headers = 2.12-1.149.el6 Installed: glibc-headers-2.12-1.149.el6_6.5.x86_64 (@updates) glibc-headers = 2.12-1.149.el6_6.5 Available: glibc-headers-2.12-1.149.el6.x86_64 (CentOS-OS) glibc-headers = 2.12-1.149.el6 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest 

Tenga en count que glibc-common-2.12-1.149.el6_6.5.x86_64 y glibc-common-2.12-1.149.el6.x86_64 no coinciden. Pero glibc-common-2.12-1.149.el6_6.5.x86_64 aparece como disponible. Pensaría que yum felizmente lo instalaría. Desafortunadamente, yum no lo instaló.

Así que traté de hacerlo yo mismo.

 ~ $> sudo yum install glibc-common-2.12-1.149.el6 Loaded plugins: fastestmirror, prest Setting up Install Process Loading mirror speeds from cached hostfile * epel: mirror.us.leaseweb.net Package matching glibc-common-2.12-1.149.el6.x86_64 already installed. Checking for update. Nothing to do 

Eso no funcionó. Cree que ya está instalado.

Así que traté de volver a instalarlo.

 ~ $> sudo yum reinstall glibc-common-2.12-1.149.el6 Loaded plugins: fastestmirror, prest Setting up Reinstall Process Loading mirror speeds from cached hostfile No Match for argument: glibc-common-2.12-1.149.el6 Package(s) glibc-common-2.12-1.149.el6 available, but not installed. Nothing to do 

¿Cómo puedo resolver esto?

El DB RPM está confundido. Mi recomendación, después de haber encontrado esto antes, es que rpm -e --justdb el nuevo package "duplicado" instalado, entonces yum upgrade el package, luego rpm --rebuilddb solo porque soy un poco paranoico. Una vez que haya realizado los primeros dos pasos, podrá instalar los packages más nuevos, suponiendo que su repository esté sincronizado correctamente. Es posible que desee yum clean all bien después de la rpm -e --justdb para estar seguro de eso – y asegúrese de especificar --justdb o podría hacer todo tipo de cosas malas en su sistema.

Jugar con la database RPM no arrojó ningún resultado particularmente bueno.

Terminé notando que algunos de los packages glibc eran i686 y otros eran x86_64 . Por ejemplo:

 Package: glibc-2.12-1.149.el6.i686 (CentOS-OS) Requires: glibc-common = 2.12-1.149.el6 Installed: glibc-common-2.12-1.149.el6_6.5.x86_64 

No me gustó eso, y espero que a Yum tampoco le haya gustado eso.

Corriendo

 yum downgrade glibc glibc-headers glibc-common glibc-devel 

trajo todos los packages a la misma architecture ( x86_64 ). Entonces,

 yum install glibc-static 

trabajado como un encanto.

Pude resolver un problema similar descargando manualmente las rpms al sistema (tenga en count que necesitará tener todas las rpm dependientes) guardándolas en una carpeta y ejecutándolas:

yum localupdate /folderlocation/*.rpm

Mi problema giraba en torno a la búsqueda de inconsistencias al get los RPM de los repos que estaba señalando. Sin embargo, los síntomas se presentaron exactamente como lo que está viendo, así que esto también puede funcionar para usted.