Skip to content
Advertisement

How to recover after deleting the symbolic link libc.so.6?

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

Advertisement

Answer

You could simply run ldconfig. Most distributions ship this as a static binary.

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement