apt-get purge 命令如何工作?

apt-get purge 命令如何工作?

“它”如何purge知道依赖项和配置文件位于何处?

如何purge找出某个软件创建了某个文件?

是否存在某种配置文件来记录程序创建的所有文件,以便purge可以在删除过程中访问记录并将文件与程序匹配?

答案1

是的,有这样的文件。特别是,,*.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给出全部文件,`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来再次检查列出的文件是否已被删除。

正如@AB 正确提醒我的那样,还有*.prerm一些文件,其中一些确实会删除 .conf 文件,但不一定,例如应用程序的文件会删除目录xpdf中的文件/etc/xpdf/includes

相关内容