내 ld.so.cache를 사용할 수 있습니까?


14

ldconfig 두 가지 흥미로운 옵션이 있습니다.

-f conf
      Use conf instead of /etc/ld.so.conf.
-C cache
      Use cache instead of /etc/ld.so.cache.

나는 /etc/ld.so.conf내 자신의 홈 디렉토리에 복사 를 시도 하고 로컬 라이브러리에 대한 경로를 포함하도록 편집했습니다 /home/syockit/local/usr/lib.

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache

그런 다음 라이브러리가 캐시되었는지 확인하기 위해

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache -p | less

그리고 시스템 라이브러리를 포함하여 모든 라이브러리를 포함합니다.

이제 기본 링커에서이 두 가지를 사용하고 싶습니다. 그러나에서 man ld.socustom .conf또는 을 사용할 수 있다는 언급은 없습니다 .cache. 그렇다면 위의 두 가지 옵션의 요점은 무엇 ldconfig입니까?

답변:


9

다른 방법으로도 같은 것을 성취 할 수는 있지만 귀하의 질문에 대한 대답은 아니오라고 생각합니다.

man ld.so에서 custom .conf 또는 .cache를 사용할 수 있다는 언급이 없습니다.

사실, $LD_LIBRARY_PATH및에 대한 언급이 있으며 --library-path, 전자가 더 일반적으로 유용합니다.

위의 두 가지 옵션의 요점은 무엇 ldconfig입니까?

따라서 시스템을 덮어 쓰지 않고 시스템 conf를 사용할 필요없이 캐시를 만들 수 있습니다.


... 아직도? 아니면 시스템 법의학을위한 것인가?
syockit

1
시스템 이미지 나 chroot 환경 등이 될 수 있습니다.
goldilocks

5

/etc/ld.so.conf(동적 로더)가 ldconfig아닌 ld.so( 캐시 생성 프로그램) 만 읽습니다 . 시스템 기본값과 다른 캐시를 생성하려는 경우 구성 파일의 위치를 ​​변경할 수 있습니다.

/etc/ld.so.cache이 읽고 ld.so다른 위치에서 읽을 수 없습니다. 그럼에도 불구하고 다른 출력 위치를에 전달하는 것이 유용 할 수 있습니다 ldconfig. 가장 일반적인 사용 사례는 아마도 chroot 환경 일 것 입니다. 당신이 사용할 수있는 ldconfig -r /some/root실행하는 ldconfig대체 루트에, 당신은 (루트가 내부 또는 외부)을 원하는 목적지까지 출력을했습니다. 출력을 출력 /some/root/etc/ld.so.cache하거나 나중에 복사해야합니다. ldconfig권한이없는 사용자 (에 쓸 수없는 사용자) 로 실행 /etc/ld.so.cache한 다음 나중에 파일을 제자리로 옮기려는 경우와 같이 상당히 모호한 사용 사례 가 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.