dpkg-query vs apt-cache:不同的包列表?

dpkg-query vs apt-cache: different package lists?

我注意到一个有趣的现象,我正在寻找解释。在我的 Ubuntu 15.10 (alpha) 系统上,dpkg-query 找不到一些 apt-cache 可以找到的已卸载软件包。例如,

dpkg-query -l libssl-dev

给我:

dpkg-query: no packages found matching libssl-dev

同时:

apt-cache show libssl-dev

查找包裹信息。同时,dpkg-query 可以找到其他未安装的包,例如gimp 并将其状态显示为已卸载。为什么有些包对 dpkg-query 不可见?

dpkg-query 主要用于处理系统上存在的包(包括处于各种状态的包,从已安装、解包到已删除但尚未清除的包),或具有选择的包,例如标记为安装的未安装包。已清除且没有任何选择的包将从 dpkg status 文件中进行垃圾回收,默认情况下不会被 dpkg-query 显示。您仍然可以使用 --load-avail 选项要求它显示存储库中的可用包,只要您的 available 文件是最新的,这也将提供良好的结果。有关如何执行此操作的更多信息,请参阅此 FAQ 条目。

apt-cache 旨在用于已安装的包和可从 apt 配置的存储库中获得的包,与其他可能的 dpkg 前端不同。