Masalahnya
perintah rpm mengeluarkan kesalahan berikut:
rpm: error while loading shared libraries: /usr/lib64/liblzma.so.0: invalid ELF header
Solusinya
Dalam contoh ini, liblzma.so atau tautannya (/usr/lib64/liblzma.so.0) telah ditimpa.
$ rpm -qa | grep binutils rpm: error while loading shared libraries: /usr/lib64/liblzma.so.0: invalid ELF header
Untuk mengatasi masalah ini, file liblzma.so dan tautan lunak terkait perlu dipulihkan. Ikuti langkah-langkah yang diuraikan di bawah ini untuk memulihkan file .so dan tautan lunak terkait.
1. Pastikan softlink /usr/lib64/liblzma.so.0 ada dan menunjuk ke 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. Jika softlink tidak ada coba yang berikut ini:
– Coba gunakan yum untuk menginstal ulang xz-libs. Namun, jika rpm mengalami masalah, kemungkinan besar juga akan demikian.
# yum reinstall xz-libs
3. Jika itu tidak berhasil, buka paket rpm dan salin file perpustakaan bersama yang baru ke file yang tidak valid. Karena rpm mengalami masalah, membongkar rpm kemungkinan perlu dilakukan pada sistem yang berbeda.
– Unduh rpm xz-libx yang sesuai dari repositori sumber dan gunakan perintah rpm2cpio dan cpio untuk membongkar 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. Salin liblzma.so.0.0.0 dari rpm yang belum dibongkar ke file perpustakaan bersama yang ada:
# 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. Uji apakah rpm bekerja seperti yang diharapkan.
# rpm -qf /usr/lib64/liblzma.so.0.0.0 xz-libs-4.999.9-0.5.beta.20091007git.el6.x86_64