리눅스 ldd 라이브러리 의존성 명령어
- IT/리눅스(Linux)
- 2022. 7. 20.
ldd(List Dynamic Dependencies)
리눅스 명령어 ldd는 지정한 프로그램의 공유 라이브러리(shared libraries) 의존성을 확인할 때 사용하는 명령어입니다.
경로
/usr/bin/ldd
사용법
ldd [옵션] 파일명
ldd /bin/java
or
[root@localhost bin] # ldd java
linux-vdso.so.1 => (0x00007ffd0af56000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa007820000)
libz.so.1 => /lib64/libz.so.1 (0x00007fa00760a000)
libjli.so => not found
libdl.so.2 => /lib64/libdl.so.2 (0x00007fa007406000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa007038000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa007c3e000)
공유라이브러리 so 파일들의 의존성들이 나타납니다.
so 파일들은 윈도우의 dll 파일과 흡사하다고 보시면 됩니다.
ldd /bin/ls
실행 파일의 라이브러리 의존성 및 버전정보 확인하기
-v 옵션을 사용해서 자세하게 나타내 의존성을 확인할 수 있습니다.
# ldd -v /bin/java
옵션
옵션 | Long옵션 | 설명 |
-d | --data-relocs | 존재해야 할 곳에 없는 오브젝트의 위치를 다시 배치하고, 그 결과를 출력 |
-r | --function-relocs | 데이터 오브젝트와 함수를 재배치하고 오브젝트나 함수 중에 찾지 못한 결과를 출력 |
-v | --verbose | 상세 정보를 출력 |
--help | ldd 명령어의 사용법 출력 | |
--version | ldd 명령어의 버전 정보를 출력 |
ldd 명령어 사용 이유
ldd 명령어는 프로세스, 모듈의 실행이 라이브러리의 부재로 되지 않거나 하는 경우 역추적하여 라이브러리를 확인하여 넣어주는 형태로 많이 사용합니다.