/etc/ld.so.conf.d/의 구성 파일을 통해 설정되는 경우 .so 라이브러리를 /usr/local/lib와 같은 디렉토리에 넣을 때마다 ldconfig를 실행해야 하는 이유는 무엇입니까?

/etc/ld.so.conf.d/의 구성 파일을 통해 설정되는 경우 .so 라이브러리를 /usr/local/lib와 같은 디렉토리에 넣을 때마다 ldconfig를 실행해야 하는 이유는 무엇입니까?

저는 docker에서 centos 6.10을 실행하고 있습니다. 제목에 설명된 대로 /usr/local/lib.conf 파일에 및 를 설정했습니다. .so 라이브러리를 넣을 때마다 이 작업을 실행해야 합니다. 그렇지 않으면 (Python 3을 컴파일할 때) 찾을 수 없습니다. 그러나 이를 설정하려면(conf 파일에 쓰지 않고) 라이브러리를 배치한 후 추가 단계가 필요하지 않습니다. 원인은 무엇입니까?/usr/local/lib64/etc/ld.so.conf.d/ldconfig/usr/local/libLD_LIBRARY_PATH/usr/local/lib:/usr/local/lib64/etc/ld.so.conf.d/

그런데 /lib디렉토리가 or /usr/lib에 설정되어 있지 않은 이유는 무엇입니까 ?/etc/ld.so.conf/etc/ld.so.conf.d/

답변1

glibc를 통해 애플리케이션을 실행하면 LD_LIBRARY_PATH=PATH app지정된 디렉터리의 모든 파일을 검사합니다.

이 플래그를 사용하지 않으면 /etc/ld.so.cache캐시 라이브러리( )만 활성화되어 프로세스 속도가 향상됩니다. 애플리케이션을 10만 번 연속으로 실행해야 하고 매번 모든 디렉터리를 다시 검색해야 한다고 상상해 보세요. 모든 것이 느려질 수 있습니다.

관련 정보