为什么某些软件包可以通过所需的操作和状态找到,dpkg-query
而unknown
其他not-installed
软件包则根本找不到?例如,我从未安装过名为 的包debian-handbook
,但它以某种方式显示在dpkg-query -l debian-handbook
或 的输出中dpkg-query -s debian-handbook
。另一方面,例如一些我从未接触过的包不会出现在输出中dpkg -l
:
root@T60:~# dpkg -l gkermit
dpkg-query: no packages found matching gkermit
root@T60:~# apt-cache policy gkermit
gkermit:
Installed: (none)
Candidate: 1.0-9
Version table:
1.0-9 0
500 http://http.debian.net/debian/ jessie/main i386 Packages
root@T60:~#
答案1
我认为dpkg -l
找到被提及为当前安装的软件包的依赖项的软件包,并且找不到其他可用的软件包。 (此处“已安装”包括“仅限conffiles”软件包,即已删除但未清除的软件包,如uc
中所列dpkg -l
。)列出了 dpkg文件 ( )dpkg -l
中提到的软件包。status
/var/lib/dpkg/status
可能还有其他原因决定软件包是否被列出dpkg -l
,但我认为这是主要的。