Hai aggiornato libc (la libreria di sistema più semplice) e ora nessun programma funziona. Per essere precisi, nessun programma collegato dinamicamente funziona.
Nel tuo particolare scenario, il riavvio dovrebbe funzionare. La libc ora installata richiede un kernel più recente e, al riavvio, dovresti ottenere quel kernel più recente.
Finché hai ancora una shell in esecuzione, c'è spesso un modo per recuperare, ma può essere complicato se non l'hai pianificato. Se non si dispone di una shell, di solito non esiste altra soluzione che riavviare.
Qui potresti non essere in grado di recuperare senza riavviare, ma puoi almeno scoprire facilmente quale kernel è in esecuzione. Basta usare un modo per leggere /proc/version
che non richiede un comando esterno.
read v </proc/version; echo $v
echo $(</proc/version) # in zsh/bash/ksh
Se hai ancora una copia della vecchia libc in giro, puoi eseguire i programmi con essa. Ad esempio, se è presente il vecchio libc /old/lib
e hai degli eseguibili che funzionano con questo vecchio libc /old/bin
, puoi eseguirlo
LD_LIBRARY_PATH=/old/lib /old/lib/ld-linux.so.2 /old/bin/uname
Se hai dei binari collegati staticamente, funzioneranno comunque. Ti consiglio di installare utility di sistema collegate statisticamente per questo tipo di problema (ma devi farlo prima che il problema inizi). Ad esempio, su Debian / Ubuntu / Mint /…, installa uno o più di busybox-static (raccolta di strumenti di riga di comando Linux di base tra cui una shell), sash (shell con alcuni builtin extra), zsh-static (solo una shell ma con alcuni strumenti utili integrati).
busybox-static uname
sash -c '-cat /proc/version'
zsh-static -c '</proc/version'