是否有一个类似的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
找不到它时应该可以工作。