Vous avez mis à jour votre libc (la bibliothèque système la plus basique) et maintenant aucun programme ne fonctionne. Pour être précis, aucun programme lié dynamiquement ne fonctionne.
Dans votre scénario particulier, le redémarrage devrait fonctionner. La libc maintenant installée nécessite un noyau plus récent, et si vous redémarrez, vous devriez obtenir ce noyau plus récent.
Tant que vous avez toujours un shell en cours d'exécution, il existe souvent un moyen de récupérer, mais cela peut être difficile si vous ne le planifiez pas. Si vous n'avez pas de shell, il n'y a généralement pas de solution autre que le redémarrage.
Ici, vous ne pourrez peut-être pas récupérer sans redémarrer, mais vous pouvez au moins facilement savoir quel noyau est en cours d'exécution. Utilisez simplement un moyen de lire /proc/version
qui ne nécessite pas de commande externe.
read v </proc/version; echo $v
echo $(</proc/version) # in zsh/bash/ksh
Si vous avez toujours une copie de l'ancienne libc, vous pouvez exécuter des programmes avec. Par exemple, si l'ancienne libc est dans /old/lib
et que vous avez des exécutables qui fonctionnent avec cette ancienne libc dans /old/bin
, vous pouvez exécuter
LD_LIBRARY_PATH=/old/lib /old/lib/ld-linux.so.2 /old/bin/uname
Si vous avez des fichiers binaires liés statiquement, ils fonctionneront toujours. Je recommande d'installer des utilitaires système liés statistiquement pour ce type de problème (mais vous devez le faire avant que le problème ne commence). Par exemple, sur Debian / Ubuntu / Mint /…, installez un ou plusieurs de busybox-static (collection d'outils de ligne de commande Linux de base, y compris un shell), sash (shell avec quelques extensions supplémentaires), zsh-static (juste un shell mais avec pas mal d'outils pratiques intégrés).
busybox-static uname
sash -c '-cat /proc/version'
zsh-static -c '</proc/version'