내가 읽고있다런타임 공유 라이브러리 패키지에 관한 Debian 정책 섹션그리고 다음 문장을 발견했습니다.
동적 링커의 기본 라이브러리 디렉터리(현재
/usr/lib
및 ) 중 하나 또는/lib
[5]에 나열된 디렉터리에 공유 라이브러리를 설치하는 모든 패키지를 사용하여 공유 라이브러리 시스템을 업데이트해야 합니다./etc/ld.so.conf
ldconfig
activate-noawait ldconfig
그러한 패키지는DEBIAN/triggers
트리거 제어 파일에 이 줄을 포함해야 합니다(예:
이런 트리거를 추가하는 것을 잊어버리면 어떻게 되는지 궁금합니다. 현재 트리거 없이 개발 패키지가 설치되어 있으며 라이브러리에 연결된 바이너리가 제대로 작동합니다.
이 요구 사항이 왜 중요한가요?
답변1
ld.so
캐시는 라이브러리를 확인하고 ldconfig
캐시를 업데이트하는 데 사용되므로 이 요구 사항이 중요합니다 . 다음을 실행하여 내용을 볼 수 있습니다.
/sbin/ldconfig -p
트리거를 건너뛰고 ldconfig
그 중 어느 것에서도 실행 하지 않으면 postinst
(라이브러리 패키지가 수행했던 방식) 캐시가 업데이트되지 않습니다.
-dev
패키지 는 런타임 라이브러리를 설치하지 않으므로 이는 패키지와 관련이 없습니다 . 일반적으로 트리거가 있는 라이브러리 패키지에 의존합니다.
이는 일반적으로 패키지를 개발할 때 빌드 도구에 의해 투명하게 처리됩니다. 예를 들어, debhelper
그 중 무엇이든 사용하거나 의존하는 경우 일반적으로 빌드가 실행되고 dh_makeshlibs
필요한 경우 트리거가 추가됩니다.