我目前正在尝试获取有关使用的已安装软件包和系统的一些信息dpkg
。所以我尝试使用dpkg-query
。大多数占位符做工精细,我得到了我所需要的,但我注意到,占位符Filename
,MD5sum
并且Size
总是空。
用简单的命令查看问题:
dpkg-query -W -f '"location":"${Filename}","md5":"${MD5sum}","size":"${Size}"\\n'
这将导致线的负载仅为
"location":"","md5":"","size":""
如联机帮助页所述,这些字段是“内部,前端相关”。实际上,它们仅用于中dselect
。
这意味着dpkg-query
默认情况下,您不能依赖它们。它们对应于存储在“可用”数据库中的值/var/lib/dpkg/available
;dpkg-query
默认情况下,仅考虑当前情况/var/lib/dpkg/status
。--load-avail
从理论上讲,您可以添加选项以合并“可用”数据库中的信息-但这需要dselect
用作软件包安装工具,因为/var/lib/dpkg/available
只能通过更新dselect
。如果您使用APT,则该命令将无效,如该-p
命令的文档中所述:
基于APT的前端用户应
apt-cache show package-name
改为使用,因为available
只有在使用时,文件才会保持最新dselect
。
如果我扩大了字段的含义有点它可能会帮助:Filename
,MD5sum
和Size
(和MSDOS-Filename
)对含包(其文件名,校验和大小)的文件中的所有提供信息。它们与包本身没有密切关系,因此status
数据库不需要它们,也不存储它们。无论安装的软件包位于何处以及其特性如何,安装的软件包或以其他方式安装的软件包均保持不变。该信息仅对检索软件包并将其提供给的前端有用dpkg
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句