"dpkg -l "*""는 어디에서 정보를 수집합니까?

"dpkg -l "*""는 어디에서 정보를 수집합니까?

내가 아는 한, dpkg -l "*"사용 가능한 모든 패키지는 상태에 관계없이 Debian 아래에 나열되어 있습니다. 이 정보는 어디에서 오는가? /var/lib/dpkg/available설치된 모든 패키지(상태)가 나열되어 있다는 것을 알고 있지만 다른 모든 패키지에 대한 정보는 ii어디서 얻을 수 있습니까 ?dpkg

답변1

이러한 사항을 확인하는 방법은 의 제어하에 유틸리티를 실행하는 것입니다 strace. 예를 들면 다음과 같습니다.

$ strace -o /tmp/dpkg-strace.out dpkg -l '*'

strace시스템 호출의 모든 사용이 추적되므로 어떤 파일에 액세스했는지 쉽게 확인할 수 있습니다. 시스템 호출의 출력 파일을 grep합니다 open. 경험을 통해 이 경우 관련 strace 라인이 다음과 같다는 것을 빠르게 알 수 있습니다.

open("/var/lib/dpkg/status", O_RDONLY)  = 3

따라서 /var/lib/dpkg/status파일은 dpkg해당 파일에서 정보를 가져옵니다. 기본적으로 RFC2822에 따른 형식의 일반 텍스트 파일이므로 less또는 유사한 명령을 사용하여 볼 수 있습니다.

관련 정보