알 수 없는 Ubuntu 시스템에서 컴파일된 라이브러리가 있고 해당 시스템이 컴파일된 Ubuntu 버전을 확인하고 싶습니다.
내 생각은 사용되는 다양한 라이브러리(예: 커널)의 버전을 찾고 이러한 버전이 버전에 따라 변경된다는 것을 아는 것입니다. 사용해 보았 nm
으나 ldd
이에 대한 정보를 찾을 수 없는 것 같습니다.
어떤 제안이 있으십니까?
답변1
아마도
readelf -a
ELF 파일에 대한 정보를 표시합니다. 작업 중인 개체에 여전히 주석 섹션이 포함되어 있는 경우 다음을 통해 주석 섹션을 추출해 볼 수 있습니다.
readelf -p .comment yourfile
예를 들어
$ cat test.c
int main () {
return 0;
}
$ gcc test.c
$ readelf -p .comment a.out
String dump of section '.comment':
[ 0] GCC: (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
objdump
동일한 정보를 제공받을 수 있습니다.
readelf -a
주석 부분이 제거된 경우 C++ 컴파일 라이브러리인 경우 명령에서 GCC 런타임 기호 버전 정보를 읽어 볼 수 있습니다. 이는 컴파일러에 제공되는 기호 버전이지 반드시 컴파일러 버전일 필요는 없습니다. Ubuntu 버전을 추적하는 것이 얼마나 유용한지 모르겠습니다.