我很好奇哪个包提供了这个/var/lib/dpkg
目录,所以我运行了这个命令
$ dpkg -S /var/lib/dpkg
base-files, dpkg: /var/lib/dpkg
/var/lib/dpkg
结果输出显示与base-files
上述字符串一起提供的包。
$ dpkg -S /var/lib/aptitude
aptitude: /var/lib/aptitude
$ dpkg -S /var/lib/apt
apt: /var/lib/apt
但是我没有base-files
在上面的输出中看到任何字符串。当然/var/lib/apt
目录中的文件对于 Ubuntu 系统的运行也是必不可少的。
那么为什么dpkg -S /var/lib/dpkg
命令显示“base-files,”字符串?为什么它没有显示在其他命令上?
答案1
您正在搜索目录,而不是特定的文件/二进制文件,因此任何包都可以安装目录内的文件:
➜ ~ dpkg -L dpkg | grep '/var/lib/dpkg'
/var/lib/dpkg
/var/lib/dpkg/info
/var/lib/dpkg/updates
/var/lib/dpkg/parts
/var/lib/dpkg/alternatives
➜ ~ dpkg -L base-files | grep '/var/lib/dpkg'
/var/lib/dpkg
➜ ~
如您所见,base-files
还创建了/var/lib/dpkg
目录(确切的原因,我忽略了它,也许有一些文件现在已经被删除,但是更改日志没有给出任何明显的提示)和 dpkg 包,它除了是目录的所有者之外/var/lib/dpkg
,还在其中安装了文件。