dpkg-query 자리 표시자 "filename", "MD5sum" 및 "size"는 항상 비어 있습니다.

dpkg-query 자리 표시자 "filename", "MD5sum" 및 "size"는 항상 비어 있습니다.

현재 설치된 패키지 및 사용법에 대한 정보를 얻으려고 노력 중입니다 dpkg. 그래서 dpkg-query대부분의 자리 표시자가 제대로 작동하고 필요한 것을 얻었지만 자리 표시자 FilenameMD5sumSize항상 비어 있습니다.

간단한 명령으로 문제를 볼 수 있습니다.

dpkg-query -W -f '"location":"${Filename}","md5":"${MD5sum}","size":"${Size}"\\n'

그러면 행 수가 많아집니다.

"location":"","md5":"","size":""

답변1

에서 언급했듯이맨페이지, 이러한 필드는 "내부, 프런트엔드 관련"입니다. 실제로 그들은 dselect.

이는 기본적으로 이들에 의존할 수 없음을 의미합니다 dpkg-query. 이는 "사용 가능한" 데이터베이스에 저장된 값에 해당하며 /var/lib/dpkg/available기본적 dpkg-query으로 /var/lib/dpkg/status현재 값만 고려됩니다. --load-avail이론적으로는 "사용 가능한" 데이터베이스의 정보를 병합하는 옵션을 추가할 수 있습니다. 그러나 명령 문서에 명시된 대로 APT를 사용하는 경우 dselect에는 ./var/lib/dpkg/availabledselect-p

APT 기반 프런트엔드 사용자 는 apt-cache show package-name대신 .availabledselect

다음 필드의 의미를 조금 확장하면 도움이 될 수 있습니다. Filename, MD5sumSize( 및 MSDOS-Filename)는 모두 패키지를 포함하는 파일에 대한 정보(파일 이름, 체크섬 및 크기)를 제공합니다. 패키지 자체와 밀접하게 관련되어 있지 않으므로 status데이터베이스에서는 이를 필요로 하지 않으며 저장하지도 않습니다. 패키지 설치 여부와 관계없이 패키지 파일의 위치와 특성에 관계없이 패키지는 변경되지 않은 상태로 유지됩니다. 이 정보는 패키지를 검색하고 에 제공하는 데에만 유용합니다 dpkg.

답변2

당신은 그것을 사용할 수 있습니다grep-availablegrep-aptavail 대신 도구(또는 위에서 언급한 것보다 더 좋음)@Stephenkit):

grep-available -s  Filename,MD5sum,size -PX <package_name>

예:

grep-available -s  Filename,MD5sum,size -PX dpkg

예제 출력:

Filename: pool/main/d/dpkg/dpkg_1.18.24_amd64.deb
MD5sum: 5553b3fac608f5c4f9fa3ddbff18c2c5
Size: 2106696

관련 정보