構成ファイルがどのパッケージに属しているかはどうすればわかりますか?

構成ファイルがどのパッケージに属しているかはどうすればわかりますか?

Debian には samba と samba-common という 2 つの主要な Samba パッケージがあります。設定ファイルはsambaまたはsamba-commonのどちらのパッケージに属しているかを/etc/samba/smb.confどうやって知ることができますか?/etc/samba/smb.conf(私はすでに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.confucf

関連情報