In our server the symbolic link to libc.so.6
has been deleted. Now none of the binaries in the system work. To fix this, I tried:
/bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6
which, as expected, gives me:
/bin/ln: error while loading shared libraries: libc.so.6:
cannot open shared object file: No such file or directory
I also tried:
/lib/ld-linux-x86-64.so.2 --inhibit-rpath /lib/libc.so.6 \
--library-path /lib/libc-2.11.3.so \
/bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6
with the same result. Further unsuccessful attempts include cp, mv, cat.
I'm connected via ssh and I believe I will not be able to open another session after closing this one. Is there a way to fix this system (using bash built-ins perhaps)?
[edit] I did:
while read line; do echo $line; done < /lib/libc-2.11.3.so > libc.so.6
to copy the file and tried with:
/lib/ld-linux-x86-64.so.2 --inhibit-rpath libc.so.6 --library-path . \
/bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6
and got:
/bin/ln: error while loading shared libraries: ./libc.so.6: ELF file OS ABI invalid
You could simply run ldconfig
. Most distributions ship this as a static binary.