Ви оновили свій libc (найпростішу системну бібліотеку), і тепер жодна програма не працює. Якщо бути точним, жодна динамічно пов'язана програма не працює.
У вашому конкретному сценарії перезавантаження повинно працювати. Зараз встановлений libc потребує новішого ядра, і якщо ви перезавантажите, ви повинні отримати це нове ядро.
Поки у вас ще є запущена оболонка, часто існує спосіб відновлення, але це може бути складним, якщо ви цього не планували. Якщо у вас немає оболонки, зазвичай, немає іншого рішення, крім перезавантаження.
Тут ви не зможете відновитись без перезавантаження, але ви можете принаймні легко дізнатися, яке ядро працює. Просто скористайтеся способом читання /proc/version
, який не вимагає зовнішньої команди.
read v </proc/version; echo $v
echo $(</proc/version) # in zsh/bash/ksh
Якщо у вас все ще є копія старого libc, ви можете запускати програми з ним. Наприклад, якщо старий libc є /old/lib
і у вас є виконувані файли, які працюють із цим старим libc /old/bin
, ви можете запустити
LD_LIBRARY_PATH=/old/lib /old/lib/ld-linux.so.2 /old/bin/uname
Якщо у вас є кілька статично пов’язаних бінарних файлів, вони все одно працюватимуть. Я рекомендую встановити статистично пов'язані системні утиліти для подібного роду проблем (але це потрібно зробити до запуску проблеми). Наприклад, на Debian / Ubuntu / Mint /… встановіть один або декілька зайнятих-статичних (колекція основних інструментів командного рядка Linux, включаючи оболонку), sash (оболонку з деякими додатковими вбудованими версіями), zsh-статичні (просто оболонка, але із вбудованим досить багато зручних інструментів).
busybox-static uname
sash -c '-cat /proc/version'
zsh-static -c '</proc/version'