Ich habe einen kritischen symbolischen Link gelöscht libc.so.6
. Ich habe die Datei, auf die es zeigen sollte, aber die grundlegenden Befehle wie ln
oder wget
funktionieren nicht mehr, weil der Link fehlt. Allerdings echo
funktionieren auch andere Bash-Builtins.
Ich suche nach einer Möglichkeit, diesen symbolischen Link wiederherzustellen.
linux
centos6
symbolic-link
Sebas
quelle
quelle
echo
.cat
ist deaktiviert ... eigentlich war alles.cat
liegt daran, dass es sich um ein externes Programm handelt. Auf der Manualpage zu Bash Builtin Commands finden Sie Details zu den verfügbaren Optionen .Antworten:
Wenn Sie ldconfig verwenden, wird der Symlink neu erstellt:
Ich habe es gerade getestet, wie Sie sehen.
quelle
/lib/libc-2.12.so
im obigen Beispiel versehentlich in umbenannt/lib/foobar
. Nun, Mist, nicht mehrmv
. Istldconfig -l /lib/foobar
aber auch schlau genug,/lib/libc.so.6
auf die falsch benannte Datei zu verweisen . (Die Argumente sind erforderlich. Standardmäßig werdenldconfig
Dateinamen ignoriert, die nicht mit "lib" beginnen und ".so" enthalten.) Zu welchem Zeitpunkt können Siemv
es zurücksetzen (odercp -p
wenn Sie paranoid / intelligent sind), und dannldconfig
erneut ausführen , um aufzuräumen .CentOS 6 wird im Allgemeinen mit
busybox
einem statisch verknüpften Satz von Unix-Tools geliefert, die in installiert sind/sbin
. Sie können es so ausführen:quelle
Stellen Sie LD_PRELOAD ein, um die relevante Bibliothek vorzuladen. Ich habe es mit libpthread ausprobiert und es scheint zu funktionieren:
quelle
sln
dient genau diesem Zweck: um symbolische Links zu reparieren, wenn Sie reguläre ln nicht verwenden können, weil Sie einen wichtigen Symlink gebrochen haben. So zitieren Sie die Manpage:quelle
Sie können die
LD_LIBRARY_PATH
Variable so einstellen , dass sie das Verzeichnis enthält, in dem reallibc.so.6
ist:Führen
ldconfig
Sie dies auch aus, um die Links neu zu erstellen. Damit sollten die Befehle funktionieren, damit Sie sie verwenden könnenln
Befehle können, um Ihr System zu reparieren.Eine andere Möglichkeit wäre, über LiveCD zu booten und die Datei dort zu verlinken.
quelle
Verwenden Sie scp oder sftp, um eine statisch verknüpfte Version von ln zu kopieren. Stellen Sie sicher, dass es ausführbar ist. Verwenden Sie es dann, um die Datei zu reparieren.
quelle