Sie haben Ihre libc (die grundlegendste Systembibliothek) aktualisiert und jetzt funktioniert kein Programm mehr. Um genau zu sein, funktioniert kein dynamisch verknüpftes Programm.
In Ihrem speziellen Szenario sollte ein Neustart funktionieren. Die jetzt installierte libc erfordert einen neueren Kernel. Wenn Sie neu starten, sollten Sie diesen neueren Kernel erwerben.
Solange Sie noch eine laufende Shell haben, gibt es oft eine Möglichkeit, sich zu erholen, aber es kann schwierig sein, wenn Sie es nicht geplant haben. Wenn Sie keine Shell haben, gibt es normalerweise keine andere Lösung als einen Neustart.
Hier können Sie möglicherweise nicht ohne Neustart wiederherstellen, aber Sie können zumindest leicht herausfinden, welcher Kernel ausgeführt wird. Verwenden Sie einfach eine Lesemethode /proc/version
, die keinen externen Befehl erfordert.
read v </proc/version; echo $v
echo $(</proc/version) # in zsh/bash/ksh
Wenn Sie noch eine Kopie der alten libc haben, können Sie Programme damit ausführen. Wenn sich die alte libc beispielsweise in befindet /old/lib
und Sie ausführbare Dateien haben, die mit dieser alten libc in funktionieren /old/bin
, können Sie sie ausführen
LD_LIBRARY_PATH=/old/lib /old/lib/ld-linux.so.2 /old/bin/uname
Wenn Sie über statisch verknüpfte Binärdateien verfügen, funktionieren diese weiterhin. Ich empfehle, statistisch verknüpfte Systemdienstprogramme für diese Art von Problem zu installieren (aber Sie müssen dies tun, bevor das Problem beginnt). Zum Beispiel auf Debian / Ubuntu / Mint / ..., installieren Sie eine oder mehrere der busybox-static (Sammlung von grundlegenden Linux - Kommandozeilen - Tools, die eine Shell), Schärpe (Schale mit einigen zusätzlichen builtins), zsh-static (nur eine Hülle , aber mit einigen handlichen Werkzeugen).
busybox-static uname
sash -c '-cat /proc/version'
zsh-static -c '</proc/version'