据我了解,dpkg -l "*"在 Debian 下列出了所有可用的软件包,而不管它们的状态如何。这些信息从何而来?我知道/var/lib/dpkg/available列出了所有已安装的软件包(状态ii),但是从哪里dpkg获取有关所有其他软件包的信息?
我检查这些事情的方法是在控制下运行实用程序strace,例如:
$ strace -o /tmp/dpkg-strace.out dpkg -l '*'
Run Code Online (Sandbox Code Playgroud)
strace跟踪系统调用的所有使用情况,因此很容易查看访问了哪些文件。grepopen系统调用的输出文件,根据一些经验,您可以很快看到,在这种情况下,相关的 strace 行是:
open("/var/lib/dpkg/status", O_RDONLY) = 3
Run Code Online (Sandbox Code Playgroud)
因此/var/lib/dpkg/status是文件dpkg从中获取其信息。它基本上是一个纯文本文件(根据 RFC2822 格式化),因此您可以使用less或类似的方式查看它。
| 归档时间: |
|
| 查看次数: |
418 次 |
| 最近记录: |