제목과 같이 /usr/lib나 /usr/local/lib 내의 라이브러리 버전확인은 어떻게 할 수 있나요?
운영체제별로 버전을 보여주는 명령어가 있는 것인가요?
버전을 확인 할려고 하는데, 검색을 해봐도 잘 찾을 수가 없습니다.
버전은 사람이 정하는 것이라서 라이브러리마다 확인하는 방법도 다 다릅니다 -_-; 보통은 라이브러리와 대응되는 헤더 파일 내에 버전 번호에 대한 매크로를 두거나 버전 번호를 출력하는 함수를 두고 있습니다. 따로 실행가능한 어플리케이션이 존재한다면 그걸 실행해서 알 수도 있겠죠(예를 들면 mysql..).
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
답변 감사드립니다.
그렇다면 따로 실행 가능한 실행파일로 확인을 해야되는 것이군요.
실행파일이 없다면 헤더파일을 참조해야겠습니다. ^^ ---------------- 노력만이 살길이다.
노력만이 살길이다.
objdump 혹은 readelf 를 사용하여 라이브러리의 version확인이 가능합니다. (ELF헤더를 제대로 구성했을 경우 - SONAME등)
homeless
프로그램 내에서 확인이 아닌 라이브러리 자체에서의 버전 확인이 가능한지의 질문이었습니다.
그런데 헤더화일로 확인을 한다고해도 컴파일해서 설치한게 아닌 라이브러리를 그냥 복사해서 쓴다면,
어떻게 확인을 해야할까요? ㅡㅡㅋ
---------------- 노력만이 살길이다.
ldd -V 로 보면 어떤가요(리눅스에서)?
-v 옵션이 있습니다. 그런데 해당 라이브러리가 참조하는 다른 라이브러리의 풀버전이 나오는군요.
해당라이브러리가 참조하는 라이브러리가 libc 라면
libc.so.6 (GLIBC_2.1.3) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.2) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.1) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.0) => /lib/tls/libc.so.6
이런식으로 나옵니다. ---------------- 노력만이 살길이다.
#getconf GNU_LIBC_VERSION glibc 2.8.90
in ubuntu # which getconf /usr/bin/getconf
# getconf -a
하게 되면 glibc의 모든 설정들이 다 나타납니다.
# getconf -a | grep libc
http://leanu.tistory.com/tag/glibc%20%EB%B2%84%EC%A0%84%20%ED%99%95%EC%9D%B8
검색하여 보니, 3가지 방법이 있으니 취향대로 선택하세요 라는 글도 있네요.
# getconf GNU_LIBC_VERSION
# rpm -q glibc
# ls /lib/libc* 후에 육안으로 확인
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
버전은 사람이
버전은 사람이 정하는 것이라서 라이브러리마다 확인하는 방법도 다 다릅니다 -_-;
보통은 라이브러리와 대응되는 헤더 파일 내에 버전 번호에 대한 매크로를 두거나 버전 번호를 출력하는 함수를 두고 있습니다.
따로 실행가능한 어플리케이션이 존재한다면 그걸 실행해서 알 수도 있겠죠(예를 들면 mysql..).
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
라이브러리 마다 다른 것이군요.
답변 감사드립니다.
그렇다면 따로 실행 가능한 실행파일로 확인을 해야되는 것이군요.
실행파일이 없다면 헤더파일을 참조해야겠습니다. ^^
----------------
노력만이 살길이다.
노력만이 살길이다.
.
objdump 혹은 readelf 를 사용하여 라이브러리의 version확인이 가능합니다.
(ELF헤더를 제대로 구성했을 경우 - SONAME등)
homeless
질문의 의도가 정확하지 않았네요.
프로그램 내에서 확인이 아닌 라이브러리 자체에서의 버전 확인이 가능한지의 질문이었습니다.
그런데 헤더화일로 확인을 한다고해도 컴파일해서 설치한게 아닌 라이브러리를 그냥 복사해서 쓴다면,
어떻게 확인을 해야할까요? ㅡㅡㅋ
----------------
노력만이 살길이다.
노력만이 살길이다.
ldd -V 로 보면
ldd -V 로 보면 어떤가요(리눅스에서)?
-v 옵션이 있습니다.
-v 옵션이 있습니다. 그런데 해당 라이브러리가 참조하는 다른 라이브러리의 풀버전이 나오는군요.
해당라이브러리가 참조하는 라이브러리가 libc 라면
libc.so.6 (GLIBC_2.1.3) => /lib/tls/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/tls/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/tls/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/tls/libc.so.6
이런식으로 나옵니다.
----------------
노력만이 살길이다.
노력만이 살길이다.
getconf를 활용해보세요.
#getconf GNU_LIBC_VERSION
glibc 2.8.90
in ubuntu
# which getconf
/usr/bin/getconf
# getconf -a
하게 되면 glibc의 모든 설정들이 다 나타납니다.
getconf하면 많은 정보가 나오는 군요. 감사합니다.
# getconf -a | grep libc
여러가지 방법이 있네요.
http://leanu.tistory.com/tag/glibc%20%EB%B2%84%EC%A0%84%20%ED%99%95%EC%9D%B8
검색하여 보니, 3가지 방법이 있으니 취향대로 선택하세요 라는 글도 있네요.
# getconf GNU_LIBC_VERSION
# rpm -q glibc
# ls /lib/libc* 후에 육안으로 확인
댓글 달기