Você atualizou sua libc (a biblioteca de sistema mais básica) e agora nenhum programa funciona. Para ser preciso, nenhum programa vinculado dinamicamente funciona.
Em seu cenário particular, a reinicialização deve funcionar. A libc agora instalada requer um kernel mais novo, e se você reiniciar, você deve pegar aquele kernel mais novo.
Desde que você ainda tenha um shell em execução, geralmente há uma maneira de recuperar, mas pode ser complicado se você não planejar. Se você não tem um shell, geralmente não há outra solução além de reinicializar.
Aqui você pode não conseguir recuperar sem reinicializar, mas pode pelo menos descobrir facilmente o kernel que está sendo executado. Apenas use uma maneira de ler /proc/version
que não requer um comando externo.
read v </proc/version; echo $v
echo $(</proc/version) # in zsh/bash/ksh
Se você ainda tiver uma cópia do libc antigo, poderá executar programas com ele. Por exemplo, se a libc antiga estiver em /old/lib
e você tiver executáveis que funcionam com essa libc antiga em /old/bin
, você pode executar
LD_LIBRARY_PATH=/old/lib /old/lib/ld-linux.so.2 /old/bin/uname
Se você tiver alguns binários vinculados estaticamente, eles ainda funcionarão. Eu recomendo instalar utilitários de sistema vinculados estatisticamente para esse tipo de problema (mas você precisa fazer isso antes que o problema seja iniciado). Por exemplo, no Debian / Ubuntu / Mint /…, instale um ou mais busybox-static (coleção de arquivos básicos Ferramentas de linha de comando do Linux incluindo um shell), sash (shell com alguns recursos extras), zsh-static (apenas um shell, mas com algumas ferramentas úteis incorporadas).
busybox-static uname
sash -c '-cat /proc/version'
zsh-static -c '</proc/version'