Wie funktioniert der Befehl apt-get purge?

8

Woher weiß 'es' (dh purge), wo sich die Abhängigkeiten und Konfigurationsdateien befinden?

Wie kann man purgeherausfinden, dass eine bestimmte Software eine bestimmte Datei erstellt hat?

Gibt es eine Art Konfigurationsdatei, die die Erstellung aller Dateien durch Programme purgeaufzeichnet , damit auf die Datensätze zugegriffen und die Dateien beim Entfernen mit dem Programm abgeglichen werden können?

Sag mir warum
quelle
2
Ich bin mir nicht ganz sicher, aber ich weiß, dass DEBs in der Regel nur Dateien unter Pfaden enthalten, die mit den Pfaden auf dem Computer übereinstimmen. Es ist wahrscheinlich, dass es purgein die DEB schaut und alle übereinstimmenden Dateien auf dem Computer löscht. Wenn die DEB die Konfigurationsdateien standardmäßig nicht hat, purgewerden sie nicht gefunden. Ich hatte Zeiten, in denen die Verwendung purgenicht alle Konfigurationen entfernt
TheWanderer
3
AFAIK entfernt keine Dateien, die von einer bestimmten Software erstellt wurden, sondern nur diejenigen, die vom Paket installiert wurden (die in aufgeführt sind /var/lib/dpkg/info/package.conffiles)
steeldriver

Antworten:

3

Ja, es gibt solche Dateien. Insbesondere *.list, *.postrmund *.conffiles, die alle in gespeicherten /var/lib/dpkg/infoVerzeichnis.

Die .postrmDateien sind Skripte nach dem Entfernen, die ausgeführt werden, nachdem ein Paket entfernt wurde. Diese Skripte liegen in der Verantwortung der Paketbetreuer, und jedes Skript ist auf das jeweilige Paket zugeschnitten. Wenn Sie /var/lib/dpkg/info/usb-modeswitch-data.postrmzum Beispiel untersuchen, sehen Sie ungefähr Folgendes:

#!/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

Es gibt auch *.listund *.conffilesDateien, die im Grunde Listen sind. gnome-terminal.listBeispielsweise werden alle Dateien und Verzeichnisse aufgelistet, die bei gnome-terminalder Installation erstellt wurden. Die *.listDateien sind sehr nützlich, um festzustellen, was was installiert hat. *.conffilesListen Sie alle Konfigurationsdateien für ein Paket auf. Während zum Beispiel xterm.listgibt alle Dateien, `xterm.conffiles * gibt nur conffiles. Mit anderen Worten, der Inhalt von conffile wird auch in der Listendatei vorhanden sein.

$ 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

Ich weiß nicht genau, wie es geht *.conffiles. Ich gehe davon aus, dass die Skripte nach dem Entfernen Vorrang haben und diese apt-getnur verwenden, um *.conffileszu überprüfen, ob die dort aufgeführten Dateien entfernt wurden.

Wie @AB mich richtig erinnerte, gibt es auch *.prermDateien, von denen einige die .conf-Dateien entfernen, aber nicht unbedingt, zum Beispiel hat die xpdfApp die Dateien im /etc/xpdf/includesVerzeichnis entfernt

Sergiy Kolodyazhnyy
quelle
Du hast die prerm-files vergessen =)
AB
1
@AB danke für die Erinnerung, #included <update.h> :)
Sergiy Kolodyazhnyy