사용하는 이유
- 캐시 업데이트: ldconfig는 /etc/ld.so.conf 파일에 명시된 디렉터리와 표준 라이브러리 디렉터리(예: /lib 및 /usr/lib)를 검색하여 라이브러리 경로 캐시(/etc/ld.so.cache)를 업데이트합니다. 이를 통해 시스템이 더 빠르게 라이브러리를 찾을 수 있습니다.
- 심볼릭 링크 생성: 특정 라이브러리 파일에 대한 적절한 심볼릭 링크를 생성하여 프로그램이 올바른 버전의 라이브러리를 사용할 수 있도록 합니다.
- 새로운 라이브러리 반영: 새로운 라이브러리를 설치한 후 ldconfig를 실행하면 시스템이 이를 인식하게 됩니다.
-C cache : 본 캐시 파일(/etc/ld.so.cache) 대신 지정한 캐시 파일을 사용
-f conf : 본 캐시 파일(/etc/ld.so.cache) 대신 지정한 캐시 파일을 사용
-l : 수동으로 각각의 라이브러리 링크
-n : 명령 행에서 지정한 디렉터리만을 대상으로 하며, /usr/lib, /lib, /etc/ld.so.conf 파일은 진행하지 않는다.
-N : 캐시를 업데이트하지 않고, 심볼릭 링크만 업데이트
-v, --verbose : 처리된 모든 라이브러리를 출력합니다. 디버깅이나 확인 용도로 유용
-V, --version : 버전 정보 출력
-X : 심볼릭 링크를 생성하지 않고, 캐시 파일만 업데이트
바이너리를 실행할 때 Shared Object 같은 동적 라이브러리를 연결해주는 링커를 설정하는 명령
리눅스상에서 *.so 파일을 제대로 인식하지 못할 때, Shared Object를 다시 읽어들이는 명령
*.so : 공유 라이브러리 파일로 프로그램의 자체 바이너리 코드로 컴파일 하는 대신 유틸리티를 사용하기 위해 프로그램이 호출해야하는 확장기능 수행. 자신의 코드를 변경하지 않고도 프로그램을 업데이트, 교체할 수 있음
공통적인 라이브러리를 사용하는 것을 동적 링크 프로그램
컴파일 할 때 자체적인 라이브러리를 사용하는 것을 정적 링크 프로그램이라고 한다.
동적으로 링크된 실행 파일은 공유 라이브러리에 완벽하게 의존적이므로 새로운 버전의 라이브러리를 설치하고 이것을 사용하려면 디렉토리를 설정하고 ldconfig로 공유라이브러리 캐시를 다시 설정해야 한다.
이 명령어는 존재하는 파일을 조사하고, /etc/ld.so.cache 캐시 파일을 설정하면서 필요한 라이브러리를 적재하고 심볼릭 링크를 만드는 역할을 한다.
/etc/ld.so.conf.d/ 에 .conf 파일을 추가, 수정하거나
LD_LIBRARY_PATH 를 변경하게 된다면 ldconfig를 통해 라이브러리를 다시 설정해야 한다.
나는 opencv를 설치하고 Yolo를 컴파일 하는 과정에서 highgui.so 를 찾지 못하는 에러가 발생했고
/etc/ld.so.conf.d/에 opencv.conf 파일을 생성하여 /usr/loca/lib/ 만 적어준 후 ldconfig를 실행하여 해결
'Chapter01 > Linux' 카테고리의 다른 글
[Linux] umask 파일과 디렉토리 권한 , ls -l (0) | 2024.06.18 |
---|---|
[ Linux ] vi 편집기 명령어 (0) | 2024.05.30 |