
Hace un tiempo intenté instalar Steam en mi servidor CentOS 5 y probé casi todo lo que encontré en Internet y parece que he podido dejar libstdc++ instalado y no instalado al mismo tiempo.
CPanel no se actualiza porque no encuentra instalada la versión correcta, pero yum no puede instalarla porque ya está instalada.
¿Cómo puedo solucionar esta situación y llegar a un estado consistente?
# yum install libstdc++-4.1.2-55.el5
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* contrib: mirror.wiredtree.com
addons | 1.9 kB 00:00
base | 1.1 kB 00:00
centosplus | 1.9 kB 00:00
contrib | 1.9 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
wiredtree | 951 B 00:00
Excluding Packages in global exclude list
Finished
Setting up Install Process
Package matching libstdc++-4.1.2-55.el5.i386 already installed. Checking for update.
Nothing to do
# yum remove libstdc++-4.1.2-55.el5
Loaded plugins: fastestmirror
Setting up Remove Process
No Match for argument: libstdc++-4.1.2-55.el5
Loading mirror speeds from cached hostfile
* contrib: mirror.wiredtree.com
addons | 1.9 kB 00:00
base | 1.1 kB 00:00
centosplus | 1.9 kB 00:00
contrib | 1.9 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
wiredtree | 951 B 00:00
Excluding Packages in global exclude list
Finished
Package(s) libstdc++-4.1.2-55.el5 available, but not installed.
No Packages marked for removal
# yum reinstall libstdc++-4.1.2-55.el5
Loaded plugins: fastestmirror
Setting up Reinstall Process
Loading mirror speeds from cached hostfile
* contrib: mirror.wiredtree.com
addons | 1.9 kB 00:00
base | 1.1 kB 00:00
centosplus | 1.9 kB 00:00
contrib | 1.9 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
wiredtree | 951 B 00:00
Excluding Packages in global exclude list
Finished
No Match for argument: libstdc++-4.1.2-55.el5
Package(s) libstdc++-4.1.2-55.el5 available, but not installed.
Nothing to do
# yum --showduplicates list libstdc++ | expand
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* contrib: mirror.wiredtree.com
Excluding Packages in global exclude list
Finished
Installed Packages
libstdc++.i386 4.3.2-7 installed
Available Packages
libstdc++.i386 4.1.2-55.el5 base
Respuesta1
Gracias a que Anthony Geoghegan me indicó la dirección correcta, pude encontrar una solución funcional.
rpm -e --justdb --nodeps libstdc++
Eso eliminará el paquete de la base de datos sin tocar los archivos, entonces lo simple yum install
funcionará.
Respuesta2
Por interés, primero intentaría eliminar el paquete usando el rpm
comando:
rpm -e libstdc++
Sin embargo, sospecho que rpm
la base de datos interna de está dañada y el comando anterior no funcionará, así que intentaré reconstruir su base de datos usando:
rpm --rebuilddb
Respuesta3
Esto puede suceder en x86_64 y en el paquete multilib. yum remove libstdc++
Intenta eliminar la versión de 64 bits, pero no está instalada. Entonces, en tal situación, debes abordar el paquete con arch. Es decir:
yum remove libstdc++-4.1.2-55.el5.i386
Respuesta4
Tuve una situación similar en mi anfitrión.
# yum --showduplicates list coreutils-libs
devolvió dos versiones del mismo paquete aparentemente instaladas al mismo tiempo.
Installed Packages
coreutils-libs.x86_64 8.4-37.el6_7.3 @updates
coreutils-libs.x86_64 8.4-43.el6 installed
Available Packages
coreutils-libs.x86_64 8.4-43.el6 base
cuando lo intenté
# yum remove coreutils-libs
falló, porque tendría que eliminar otras dependencias, incluyendommmsí mismo.
Sin embargo, después de varias pruebas y errores pude solucionarlo. La clave es utilizar el nombre completo del paquete, es decir, incluir la versión y el sufijo de lanzamiento.
El punto principal es que eliminar uno de los paquetes requeriría la eliminación física, pero eliminar el otro solo eliminará el registro de base de datos rpm y, por lo tanto, pondrá la base de datos en un estado consistente.
En mi caso pude ver que también teníacoreutils-8.4-37.el6_7.3paquete instalado, por lo que la versión -37.el6_7.3 probablemente era la correcta (es decir, a conservar).
cuando le dijemmmpara quitar el otro
# yum remove coreutils-libs-8.4-43.el6
Todo se ejecutó sin ningún error y RPM DB volvió a ser consistente.