사용 ldd 명령을 사용하여 주어진 프로그램에 필요한 공유 라이브러리를 표시합니다. 종속성이 누락 된 경우에 유용합니다. 이 명령은 누락 된 기능 및 개체도 나열합니다.
ldd 명령 구문
오류를 피하기 위해 ldd 명령에 대한 올바른 구문을 관찰하십시오.
ldd 옵션 … 파일 …
사용할 수있는 ldd 명령 스위치 중 하나 이상을 사용하십시오. 선택권 위의 명령에서 자리 표시 : --help | 이 도움말을 출력하고 종료하십시오. --version | 버전 정보를 출력하고 종료하십시오. -d, --data-relocs | 데이터 재배치 프로세스 -r, --function-relocs | 프로세스 데이터 및 함수 재배치 -u, --unused | 사용되지 않는 직접 의존성을 인쇄한다. -v, --verbose | 모든 정보를 인쇄하십시오. 프로그램에 대한 추가 정보를 얻으려면 다음 명령을 실행하십시오. $ ldd -v / path / to / program / executable
출력은 다음과 같이 버전 정보와 공유 라이브러리에 대한 경로 및 주소를 표시합니다. $ ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)
SO 파일이 전혀 존재하지 않으면 다음 명령을 사용하여 누락 된 라이브러리를 찾을 수 있습니다. $ ldd -d path / to / program
출력은 다음과 유사합니다. linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => not foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) /lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)
ldd가 실제로이를 실행할 수 있기 때문에 신뢰할 수없는 프로그램에 대해 ldd 명령을 실행하지 마십시오. 대신 전체 종속성 트리가 아닌 직접적인 종속성만을 보여주는보다 안전한 대안을 사용하십시오. $ objdump -p / path / to / program | grep이 필요하다. 여러 가지 방법으로 ldd에서 의존성을 찾으려면 응용 프로그램에 대한 전체 경로를 제공해야합니다. 예를 들어 Firefox의 경로를 찾는 방법은 다음과 같습니다. $ find / -name firefox
그러나 find 명령의 문제점은 실행 파일을 나열 할뿐만 아니라 Firefox가있는 모든 곳을 나열한다는 것입니다. 이 방법은 약간의 잔인한 것이므로 권한을 높이기 위해 sudo 명령을 사용해야 할 수도 있습니다. 그렇지 않으면 많은 권한 거부 오류가 발생할 수 있습니다. 대신 whereis 명령을 사용하여 응용 프로그램의 경로를 찾는 것이 훨씬 쉽습니다. $ whereis firefox
이번에는 다음과 같이 출력 될 것입니다 : / usr / bin / firefox / etc / firefox / usr / lib / firefox Firefox 용 공유 라이브러리를 찾으려면 지금 다음 명령을 입력하십시오. $ ldd / usr / bin / firefox
명령의 출력은 다음과 같습니다. linux-vdso.so.1 (0x00007ffff8364000)libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)libstdc ++. so.6 => /usr/lib/libstdc++.so.6 (0x00007feb98bf4000)libm.so.6 => /usr/lib/libm.so.6 (0x00007feb988f6000)libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)libc.so.6 => /usr/lib/libc.so.6 (0x00007feb9833c000)/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000) Linux-vdso.so.1은 라이브러리의 이름이고 16 진수는 라이브러리가 메모리에로드 될 주소입니다. 다른 많은 행에서 => 기호 다음에 경로가 있음을 알 수 있습니다. 이것은 물리적 바이너리 경로입니다. 16 진수는 라이브러리가로드 될 주소입니다. ldd 명령 사용 방법
응용 프로그램 경로를 찾는 방법




