
Ich habe einen wichtigen symbolischen Link gelöscht - libc.so.6
. Ich habe die Datei, auf die er verweisen sollte, aber die grundlegenden Befehle wie ln
oder wget
funktionieren aufgrund des fehlenden Links nicht mehr. echo
Andere integrierte Bash-Befehle wie oder funktionieren jedoch.
Ich suche nach einer Möglichkeit, diesen symbolischen Link wiederherzustellen.
Antwort1
Sie können ldconfig verwenden, es erstellt den symbolischen Link neu:
# rm /lib/libc.so.6
rm: remove symbolic link `/lib/libc.so.6'? y
# ls -l /lib/libc*
ls: error while loading shared libraries: libc.so.6: cannot open shared object file:
# ldconfig
# ls -l /lib/libc*
[skip]
lrwxrwxrwx. 1 root root 12 May 11 07:59 /lib/libc.so.6 -> libc-2.12.so
habe es gerade getestet, wie Sie sehen.
Antwort2
CentOS 6 kommt im Allgemeinen mitbusybox
, ein statisch verknüpfter Satz von Unix-Tools, installiert in /sbin
. Sie können es wie folgt ausführen:
/sbin/busybox ln -s libc-2.12.so /lib/libc.so.6
Antwort3
Setzen Sie LD_PRELOAD, um die entsprechende Bibliothek vorab zu laden. Ich habe es mit libpthread ausprobiert und es scheint zu funktionieren:
root@spirit:~# mv /lib/x86_64-linux-gnu/libpthread.so.0 /lib/x86_64-linux-gnu/libpthread.so.0-bak
root@spirit:~# chattr
chattr: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
root@spirit:~# LD_PRELOAD=/lib/x86_64-linux-gnu/libpthread.so.0-bak chattr
Usage: chattr [-RVf] [-+=AaCcDdeijsSu] [-v version] files...
Antwort4
Sie können LD_LIBRARY_PATH
die Variable so einstellen, dass sie das Verzeichnis einschließt, in dem sich real libc.so.6
befindet:
export LD_LIBRARY_PATH="/dir/for/libc.so.6/:$LD_LIBRARY_PATH"
Führen Sie es außerdem aus, ldconfig
um die Links neu zu erstellen. Dadurch sollten die Befehle funktionieren, sodass Sie ln
Ihr System anschließend mit den Befehlen reparieren können.
Eine andere Möglichkeit wäre, über eine LiveCD zu booten und die Datei dort zu verknüpfen.