据我了解,dpkg -l "*"
Debian 下列出了所有可用的软件包,无论其状态如何。这些信息从哪里来?我知道它/var/lib/dpkg/available
列出了所有已安装的软件包(状态ii
),但是从哪里获取dpkg
有关所有其他软件包的信息?
答案1
我检查这些事情的方法是在 的控制下运行实用程序strace
,例如:
$ strace -o /tmp/dpkg-strace.out dpkg -l '*'
strace
跟踪系统调用的所有使用情况,因此可以轻松查看访问了哪些文件。 grep 系统调用的输出文件open
,凭借一些经验,您可以很快看到在这种情况下相关的 strace 行是:
open("/var/lib/dpkg/status", O_RDONLY) = 3
因此/var/lib/dpkg/status
,文件dpkg
从中获取信息。它基本上是一个纯文本文件(按照 RFC2822 进行格式化),因此您可以使用less
或类似的命令查看它。