debian中有两个主要的samba软件包:samba、samba-common。配置文件是/etc/samba/smb.conf
,如何知道/etc/samba/smb.conf
属于哪个软件包——samba或samba-common? (我已经知道它包含在 samba-common 中)
答案1
下面的文件/etc/
通常不会直接在包中发布,而是由“维护者脚本”管理。这些都存储在/var/lib/dpkg/info
;在安装期间运行的那些名称以inst
.
首先要尝试的仍然是包搜索:
dpkg -S /etc/samba/smb.conf
在这种情况下,这不会找到任何东西。 (当此命令返回匹配项时,还要检查匹配的文件名,因为匹配可能是部分的。)
我们需要查看维护者脚本:
$ grep smb.conf /var/lib/dpkg/info/*inst
/var/lib/dpkg/info/samba-common-bin.postinst: echo "Checking smb.conf with samba-tool"
/var/lib/dpkg/info/samba-common-bin.postinst: echo "Checking smb.conf with testparm"
/var/lib/dpkg/info/samba-common.postinst:NEWFILE=$TEMPDIR/smb.conf
/var/lib/dpkg/info/samba-common.postinst:CONFIG=/etc/samba/smb.conf
/var/lib/dpkg/info/samba-common.postinst:configure_smb_conf() {
/var/lib/dpkg/info/samba-common.postinst: configure_smb_conf "$CONFIG"
/var/lib/dpkg/info/samba-common.postinst:cp /usr/share/samba/smb.conf "$NEWFILE"
/var/lib/dpkg/info/samba-common.postinst:configure_smb_conf "$NEWFILE"
/var/lib/dpkg/info/samba-common.postinst: echo " sudo cp /usr/share/samba/smb.conf $CONFIG"
该文件是由 创建的samba-common.postinst
,因此负责它的包是samba-common
。该软件包在 中提供了一个初始配置文件/usr/share/samba/smb.conf
,并将其安装为/etc/samba/smb.conf
;它用ucf
如果合适的话,将用户设置(例如工作组名称)合并到其中,并处理升级时的更改。当包被清除时,删除维护者脚本负责删除/etc/samba/smb.conf
以及由ucf
.