我注意到一个有趣的现象,正在寻找解释。在我的 Ubuntu 系统上,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
?
答案1
基本上,dpkg-query
向您显示系统上安装了什么,甚至显示已安装在系统上但在某个时候被删除的软件包。
有趣的是,如果一个包使用了另一个包的依赖项,dpkg
则可能会将它们列为已安装,即使其中一个包从未在系统上完全安装。
但apt
用于从 sources.list 和 sources.d/* 目录中定义的存储库下载包。
换句话说,apt-cache
显示系统上“可以安装”的软件包,而不是已经安装/卸载的软件包。