> 패키지 및 시스템 관리 > ldd

ldd: 공유 라이브러리 의존성 확인

ldd 명령어는 동적으로 링크된 실행 파일이나 공유 라이브러리가 필요로 하는 공유 라이브러리(shared libraries) 목록을 출력합니다. 이는 프로그램이 어떤 라이브러리에 의존하는지, 그리고 해당 라이브러리들이 시스템의 어디에 위치하는지 파악하는 데 유용합니다.

개요

ldd는 ELF(Executable and Linkable Format) 형식의 실행 파일이나 공유 라이브러리가 런타임에 필요로 하는 동적 라이브러리 목록을 보여줍니다. 이는 라이브러리 누락 문제 해결, 빌드 환경 검증, 보안 분석 등에 활용될 수 있습니다.

주요 기능

  • 프로그램의 동적 라이브러리 의존성 확인
  • 각 라이브러리의 시스템 내 경로 확인
  • 누락된 라이브러리 식별 및 문제 해결 지원

주요 옵션

ldd 명령어는 다양한 옵션을 통해 출력되는 정보의 상세 수준을 조절할 수 있습니다.

정보 출력 제어

생성된 명령어:

명령어를 조합해 보세요.

설명:

`ldd` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

기본 사용법: /bin/ls 의존성 확인

ldd /bin/ls

/bin/ls 실행 파일이 필요로 하는 공유 라이브러리 목록을 출력합니다.

상세 정보와 함께 /usr/bin/python3 의존성 확인

ldd -v /usr/bin/python3

/usr/bin/python3 실행 파일의 의존성을 상세한 정보와 함께 출력합니다.

특정 공유 라이브러리의 의존성 확인

ldd /lib/x86_64-linux-gnu/libc.so.6

libc.so.6 공유 라이브러리 자체의 의존성을 확인합니다.

팁 & 주의사항

ldd 사용 시 유의할 점과 유용한 팁입니다.

보안 경고

ldd는 실행 파일을 직접 실행하여 라이브러리 의존성을 확인하는 방식이므로, 신뢰할 수 없는 실행 파일에 대해 ldd를 사용하는 것은 보안상 위험할 수 있습니다. 알 수 없는 바이너리에 대해서는 `readelf -d`와 같은 도구를 사용하는 것이 더 안전합니다.

활용 팁

  • **라이브러리 누락 오류 디버깅**: 프로그램 실행 시 'shared library not found' 오류가 발생할 때, ldd를 사용하여 어떤 라이브러리가 누락되었는지 빠르게 파악할 수 있습니다.
  • **컨테이너 환경 준비**: Docker와 같은 컨테이너 이미지를 만들 때, ldd를 사용하여 실행에 필요한 최소한의 라이브러리 목록을 파악하고 이미지 크기를 최적화할 수 있습니다.
  • **크로스 컴파일 환경 검증**: 특정 아키텍처용으로 컴파일된 바이너리가 올바른 라이브러리에 링크되었는지 확인할 때 유용합니다.


동일 카테고리 명령어