'it'(つまりpurge
)は、依存関係ファイルと構成ファイルの場所をどのようにして知るのですか?
purge
は、特定のソフトウェアが特定のファイルを作成したことをどのようにして検出しますか?
purge
がレコードにアクセスして、削除中にファイルをプログラムに一致させるために、プログラムによるすべてのファイルの作成を記録する何らかの構成ファイルがありますか?
はい、そのようなファイルがあります。特に、*.list
、*.postrm
、および*.conffiles
は、すべて/var/lib/dpkg/info
ディレクトリに保存されます。
.postrm
ファイルは、パッケージが削除された後に実行される削除後スクリプトです。これらのスクリプトはパッケージメンテナーの責任であり、各スクリプトは特定のパッケージに合わせて調整されます。たとえば/var/lib/dpkg/info/usb-modeswitch-data.postrm
を調べると、次のように表示されます。
#!/bin/sh
set -e
# Automatically added by dh_installdeb
dpkg-maintscript-helper rm_conffile "/etc/usb_modeswitch.d/230d:0001" 20101222-3 -- "$@"
# End automatically added section
基本的にリストである*.list
および*.conffiles
ファイルもあります。たとえば、gnome-terminal.list
は、gnome-terminal
がインストールされたときに作成されたすべてのファイルとディレクトリをリストします。 *.list
ファイルは、何が何をインストールしたかを判断するのに非常に役立ちます。 *.conffiles
は、パッケージのすべての構成ファイルをリストします。たとえば、xterm.list
はallファイルを提供しますが、 `xterm.conffiles *はconffilesのみを提供します。つまり、conffileの内容もリストファイルに存在します。
$ cat /var/lib/dpkg/info/xterm.conffiles
/etc/X11/app-defaults/XTerm
/etc/X11/app-defaults/KOI8RXTerm-color
/etc/X11/app-defaults/XTerm-color
/etc/X11/app-defaults/UXTerm-color
/etc/X11/app-defaults/UXTerm
/etc/X11/app-defaults/KOI8RXTerm
*.conffiles
がどのように機能するのかよくわかりません。私の想定では、削除後のスクリプトが優先され、apt-get
はそれらの*.conffiles
を使用して、そこにリストされているファイルが削除されたことを再確認します。
@ A.Bとして適切に思い出させてくれました。*.prerm
ファイルもあります。そのいくつかは.confファイルを削除しますが、必ずしもそうではありません。たとえば、xpdf
appのファイルは/etc/xpdf/includes
ディレクトリ