libc (가장 기본적인 시스템 라이브러리)를 업그레이드했으며 이제 프로그램이 작동하지 않습니다. 정확하게 말하면 동적으로 연결된 프로그램이 작동하지 않습니다.
특정 시나리오에서는 재부팅이 작동합니다. 현재 설치된 libc에는 최신 커널이 필요하며 재부팅하면 최신 커널을 가져와야합니다.
여전히 실행중인 쉘이있는 한 복구 할 수있는 방법이 있지만 계획하지 않은 경우 까다로울 수 있습니다. 쉘이 없다면 일반적으로 재부팅 이외의 해결책은 없습니다.
여기서는 재부팅하지 않고 복구 할 수 없지만 최소한 어떤 커널이 실행 중인지 쉽게 찾을 수 있습니다. /proc/version
외부 명령이 필요없는 읽는 방법을 사용하십시오 .
read v </proc/version; echo $v
echo $(</proc/version) # in zsh/bash/ksh
여전히 오래된 libc 사본이 있으면 프로그램을 실행할 수 있습니다. 예를 들어, 이전 libc가 있고이 이전 libc /old/lib
와 작동하는 실행 파일이있는 /old/bin
경우 다음을 실행할 수 있습니다.
LD_LIBRARY_PATH=/old/lib /old/lib/ld-linux.so.2 /old/bin/uname
정적으로 링크 된 바이너리가있는 경우 여전히 작동합니다. 이런 종류의 문제에 대해 통계적으로 연결된 시스템 유틸리티를 설치하는 것이 좋습니다 (그러나 문제가 시작되기 전에해야합니다). 예를 들어, Debian / Ubuntu / Mint /…에서 busybox-static (쉘을 포함한 기본 Linux 명령 행 도구 모음), sash (일부 내장 쉘), zsh-static ( 쉘만 있지만 몇 가지 편리한 도구가 내장되어 있습니다).
busybox-static uname
sash -c '-cat /proc/version'
zsh-static -c '</proc/version'