現在インストールされているパッケージと使用方法に関する情報を入手しようとしていますdpkg
。だから、dpkg-query
ほとんどのプレースホルダーは正常に機能し、必要なものを得ましたが、プレースホルダーFilename
とMD5sum
はSize
常に空です。
簡単なコマンドで問題を見ることができます。
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/available
dselect
-p
APTベースのフロントエンドユーザーの
apt-cache show package-name
代わりに。available
dselect
次のフィールドの意味を少し拡張すると役に立ちます。Filename
、およびMD5sum
(Size
およびMSDOS-Filename
)はすべて、パッケージを含むファイルに関する情報(ファイル名、チェックサム、およびサイズ)を提供します。パッケージ自体と密接に関連していないため、データベースはstatus
それを必要とせず、保存もしません。パッケージをインストールするかどうかにかかわらず、パッケージファイルの場所と属性に関係なく、パッケージは変更されていません。この情報はパッケージを検索して提供するためにのみ役立ちますdpkg
。
答え2
あなたはそれを使用することができますgrep-available
grep-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