Phantom

ldconfig, ldd 본문

프로그래밍에 대한 정보들

ldconfig, ldd

Ph4nt0m_ 2013. 5. 5. 19:16
반응형

[질문] ldconfig 명령이 수행하는 것이 무엇인지 모르겠습니다.?
ldd 명령이 수행하는것은?
/lib/ld.so
/etc/ld.so.conf
/etc/ld.so.cache 
3개의 파일의 관계가 궁금합니다.
--------------------------------------------------------------
[답변] ldconfig, ldd 명령어
ldconfig 는 동적 링크 라이브러리(.so)로 소스컴파일 한 실행 파일을
ldd [파일이름] 해보면 링크가 안되어 있을시 경로를 못찾는 것들이 나오는데 이를 해결할때 사용합니다.


이때 동적링크를 /etc/ld.so.conf 에 해당 라이브러리 경로를 삽입 후
ldconfig 하면 리눅스 커널이 /etc/ld.co.conf에 있는 라이브러리 경로를 링크시켜준다.
(그런데 이 /etc/ld.so.conf 파일에는 다른 디렉토리로 연결이 됬는데

/etc/ld.so.conf 안의 내용 "include ld.so.conf.d/*.conf"
경로를 따라 가면 /etc/ld.so.conf.d/qt-i386.conf이 있습니다.
이 파일 안의 "/usr/lib/qt-3.3/lib"으로 다시 가면 라이브러리 정보파일들이 있습니다.

다시 ldd [파일이름] 하면 링크가 잘 되어 있을 것이다.

쉽게 말해서, 컴파일한 후 특정 명령어가 안될경우 혹은 라이브러리 관련 오류가 발생할경우 합니다.
또는 라이브러리 링크가 잘못되어 있을시 다시 연결하는데 해결할때 사용합니다.

 

 

[시나리오] /bin/ls 명령어가 안될때
(01) # ldd /bin/ls
해보니까 라이브러리 링크가 없어졌네요? 그러면 바로 연결해주죠!

(02) 라이브러리 경로를 /etc/ld.so.conf 파일에 정의를 한 후
(03) # ldconfig 하면 /etc/ld.so.conf 파일을 참조하여 관련 정보를 갱신합니다.
(04) 다시 # ldd /bin/ls 하면, 깨진 라이브러리 경로가 제대로 되는 것을 확인 할 수 있습니다.

 

 

[참고] # man ldconfig
ldconfig 는 
       -f conf
              Use conf instead of /etc/ld.so.conf

       -C cache
              Use cache instead of /etc/ld.so.cache
-> /etc/ld.so.cache 파일은 Data 파일 입니다. 

파일 이름을 보면 캐쉬파일이라 ldconfig 명령어를 사용하셨을 경우 특정 정보가 들어갑니다.

반응형

'프로그래밍에 대한 정보들' 카테고리의 다른 글

fsck 명령어  (0) 2013.05.06
sync 명령어  (0) 2013.05.06
줄리안(Julian) 일자  (0) 2013.05.02
리눅스 프롬프트의 의미  (0) 2013.05.02
시스템 종료 과정  (0) 2013.05.02
Comments