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
前端不同。
我注意到一个有趣的现象,我正在寻找解释。在我的 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
前端不同。