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/availabledpkg-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 代わりにツール(または上記のものよりも良い)スティーブンキット):

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

関連情報