El problema
los comandos rpm emiten el siguiente error:
rpm: error while loading shared libraries: /usr/lib64/liblzma.so.0: invalid ELF header
La solución
En este caso, se había sobrescrito liblzma.so o el enlace (/usr/lib64/liblzma.so.0).
$ rpm -qa | grep binutils rpm: error while loading shared libraries: /usr/lib64/liblzma.so.0: invalid ELF header
Para resolver este problema, es necesario restaurar el archivo liblzma.so y el vínculo de software asociado. Siga los pasos descritos a continuación para restaurar el archivo .so y los enlaces blandos asociados.
1. Asegúrese de que el vínculo suave /usr/lib64/liblzma.so.0 existe y apunta a liblzma.so.0.0.0 .
# ls -l /usr/lib64/liblzma.so.0 lrwxrwxrwx 1 root root 16 Mar 31 15:42 /usr/lib64/liblzma.so.0 -> liblzma.so.0.0.0
# file /usr/lib64/liblzma.so.0.0.0 ./usr/lib64/liblzma.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
2. Si el enlace suave no existe, intente lo siguiente:
– Intente usar yum para reinstalar xz-libs. Sin embargo, si rpm tiene un problema, es probable que también lo tenga.
# yum reinstall xz-libs
3. Si eso no funciona, descomprima el rpm y copie el nuevo archivo de biblioteca compartida sobre el archivo no válido. Dado que RPM tiene problemas, es probable que deba desempaquetar RPM en un sistema diferente.
– Descargue el rpm xz-libx apropiado del repositorio fuente y use los comandos rpm2cpio y cpio para descomprimir el rpm.
# rpm2cpio xz-libs-4.999.9-0.5.beta.20091007git.el6.x86_64.rpm | cpio -idv ./usr/lib64/liblzma.so.0 ./usr/lib64/liblzma.so.0.0.0 ./usr/share/doc/xz-libs-4.999.9 ./usr/share/doc/xz-libs-4.999.9/COPYING.GPLv2 ./usr/share/doc/xz-libs-4.999.9/COPYING.GPLv3 ./usr/share/doc/xz-libs-4.999.9/COPYING.LGPLv2.1 421 blocks
4. Copie el archivo liblzma.so.0.0.0 del rpm desempaquetado sobre el archivo de biblioteca compartida existente:
# cp -pv ./usr/lib64/liblzma.so.0.0.0 /usr/lib64/liblzma.so.0.0.0 cp: overwrite '/usr/lib64/liblzma.so.0.0.0'? y './usr/lib64/liblzma.so.0.0.0' -> '/usr/lib64/liblzma.so.0.0.0'
# file /usr/lib64/liblzma.so.0.0.0 /usr/lib64/liblzma.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
5. Pruebe que las rpm funcionan según lo esperado.
# rpm -qf /usr/lib64/liblzma.so.0.0.0 xz-libs-4.999.9-0.5.beta.20091007git.el6.x86_64