deborphan und apt-get finden verwaiste Pakete nicht

30/12/2015 - 09:10 von Martin Klaiber | Report spam
Hallo,

ich habe eher zufàllig Dateien bemerkt, die zu einem Screensaver-Paket
gehören, aber nicht installiert sein sollten, da ich keinen Screensaver
benutze:

martinkl@maurice:~$ du -ah /usr/lib/xscreensaver | sort -h
36K /usr/lib/xscreensaver/metaballs
40K /usr/lib/xscreensaver/cwaves
40K /usr/lib/xscreensaver/fuzzyflakes
40K /usr/lib/xscreensaver/slidescreen
44K /usr/lib/xscreensaver/deco
44K /usr/lib/xscreensaver/popsquares
48K /usr/lib/xscreensaver/distort
48K /usr/lib/xscreensaver/fiberlamp
48K /usr/lib/xscreensaver/galaxy
48K /usr/lib/xscreensaver/shadebobs
56K /usr/lib/xscreensaver/swirl
60K /usr/lib/xscreensaver/penrose
64K /usr/lib/xscreensaver/ripples
64K /usr/lib/xscreensaver/xlyap
68K /usr/lib/xscreensaver/abstractile
144K /usr/lib/xscreensaver/m6502
896K /usr/lib/xscreensaver

martinkl@maurice:~$ apt-file search metaballs | grep /usr/lib
xscreensaver-data: /usr/lib/xscreensaver/metaballs

martinkl@maurice:~$ aptitude why xscreensaver-data
i acpi-support Recommends xscreensaver | gnome-screensaver
p xscreensaver Depends xscreensaver-data

Keine dependencies, kann also weg. Allerdings làsst sich das Paket
nicht deinstallieren, da es angeblich gar nicht installiert ist:

root@maurice:~# apt-get purge xscreensaver-data
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package 'xscreensaver-data' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

martinkl@maurice:~$ deborphan
martinkl@maurice:~$

martinkl@maurice:~$ deborphan -a | grep screen
martinkl@maurice:~$

martinkl@maurice:~$ dpkg -l | grep -i screensaver
martinkl@maurice:~$

Ein genauerer Blick auf eine der Dateien:

martinkl@maurice:~$ file /usr/lib/xscreensaver/metaballs
/usr/lib/xscreensaver/metaballs: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x662406465b54b3cb9e43df2aeadd7c5b05ae48a4, stripped

Eine Datei für Kernel 2.6.26, also vermutlich eine Leiche aus einer
früheren Installation. Aktuell habe ich Wheezy installiert. Könnte
das die Erklàrung dafür sein, dass weder apt-get noch deborphan die
Dateien finden?

Ich könnte die Dateien natürlich manuell entfernen, aber ein 'locate
xscreensaver' zeigt, dass noch viel mehr Dateien eines dieser Pakete
installiert sind, ich will sie hier nicht alle aufzàhlen:

martinkl@maurice:~$ locate xscreensaver | wc -l
84

Möglicherweise habe ich sogar noch mehr Paket-Leichen auf dem Rechner,
die von deborphan oder apt-get nicht gefunden werden. Es wàre mir also
lieb, wenn ich sie mit Hilfe des Paket-Managements entfernen könnte.
Doch wie kann ich erreichen, dass die Dateien gefunden und einem Paket
zugeordnet werden können?

Kernel 2.6.26 wurde mit Lenny eingeführt. Ich habe nun probehalber
mal die Paket-Quellen für Squeeze und Lenny in die sources.list mit
aufgenommen und ein apt-get update gemacht, aber die verwaisten Pakete
werden immer noch nicht gefunden. War auch eher ein hilfloser Versuch
mangels Durchblick ;-)

Weiß jemand, wie man das Problem lösen kann?

Danke, Martin
 

Lesen sie die antworten

#1 Thomas Antepoth (debian)
30/12/2015 - 10:10 | Warnen spam
Hallo Martin,


so einen Fall hatte ich auch schon einmal.

Ursache da war eine Recovery von einem mit "rsync" gezogenen Backup.

Das Backup lief seit Anbeginn der Zeit auf einen IO-Error bei
/run/XXX/gvfs und hat daher die alten Dateien nicht gelöscht.

So entstanden also die Orphans. Google findet eine ganze Reihe von
diesen Dingern mit dem Suchbegriff "rsync does not delete files".


Die Strategie, die ich dabei durchzog, war so sinngemàß:

1.) Finde für jede Datei unter /usr und /var mittels "dpkg -S" das
dazugehörige Paket und erstelle eine Liste aller verwaisten Dateien.

also irgendwas mit

(find /usr -type f | while read f ; do dpkg -S $f ; done) 2>&1 | tee
usrfiles.log

und anschließender Filterung auf Fehlermeldungen

2.) Durchsicht der so erzeugten Liste ob sich darunter irgendwelche
anderen Dinge befinden und Anpassung dieser Liste. Sauarbeit. Beispiel:
/var/log/ oder /var/cache oder /usr/src

3.) Backup machen - diesmal richtig. ;-)

4.) Verschieben der Dateien in der Liste aus 2.) woanders hin.

5.) Reboot und schwitzige Hànde beim Funktionstest.


"dpkg -S" deshalb, weil das auch die von Hand installierten .deb-Pakete
durchsucht, die nicht aus einem Repo stammen.

Bei mir waren es nach 1.) so um die 50.000 Dateien. Nach der Bereinigung
in 2.) noch so um die 10.000. Dabei bin ich noch auf uralte
Kernel-Header gestoßen usw.



Freundliche Grüße


Thomas

Ähnliche fragen