哪个包提供了某个配置文件?

哪个包提供了某个配置文件?

是否有一个类似的dpkg -S <file>, 但对于配置文件,例如/etc/samba/smb.conf?我猜它们是在 上生成的dpkg-reconfigure

user@host:~$ dpkg -S /etc/samba/smb.conf
dpkg-query: no path found matching pattern /etc/samba/smb.conf

答案1

dpkg -S只会找到直接在包中提供的配置文件,而不是由维护者脚本(或其他工具)生成的配置文件。后者没有通用的解决方案,但查找对文件的引用/var/lib/dpkg/info是最好的选择。在这种情况下:

$ grep -rl /etc/samba/smb.conf /var/lib/dpkg/info
/var/lib/dpkg/info/samba-common.config
/var/lib/dpkg/info/samba-common.postinst
/var/lib/dpkg/info/samba-common.postrm
/var/lib/dpkg/info/samba-common.templates

samba-common这表明该文件由;管理。阅读该postinst文件将证实这一点。

答案2

Stephen Kitt的答案可能是最好的,但如果你找不到这样的答案,你也可以尝试etckeeper。默认情况下,Debian 和 Ubuntu 上没有安装它,但它在存储库中,因此一个简单的操作apt install etckeeper就可以完成。

Etckeeper 将您置于/etc(git) 版本控制之下。它所做的事情之一是每次安装/更新软件包时自动提交。

现在您可以cd /etc && sudo git blame somefile查看调整时间并在其中搜索该日期/var/log/dpkg*

这是很多工作,但是当dpkg -S找不到它时应该可以工作。

相关内容