Linux Hausputz
Säuberung eines Debian-System nach Release-Upgrades
vom 28.8.2021
 
Anders als manch andere Betriebssysteme muss ein Debian-System bei Erscheinen einer neuen Version nicht neu installiert werden, sondern kann mit Apt einfach auf die neue Version aktualisiert werden. Dabei bleiben jedoch meist einige Paketleichen zurück, so dass ein nachträgliches CleanUp nicht schadet.
Nach mehreren Release Upgrades ist das System ansonsten vollgemüllt mit unnötigen Paketen, Konfigurationsdateien und Scripten, die womöglich noch vom vorvorletzten Release stammen.
Man kann sein System aber in drei Schritten säubern:
1. Deborphan:
Der Befehl deborphan
gibt eine Liste der nicht mehr benötigte Bibliotheken aus. Man kann sie händisch löschen oder, wenn man der Standardausgabe von deborphan traut, auch automatisch (als root oder hier mittels sudo
):
sudo aptitude --purge-unused purge $(deborphan)
Interessant ist auch die Ausgabe von:
deborphan -a
Dies liefert eine Liste aller Pakete, die manuell installiert wurden, aber nicht für den Betrieb des Grundsystems notwendig sind. Diese Liste kann man manuell durchgehen und all die Programm-Pakete entfernen, von denen man sicher sagen kann, dass man sie nicht (mehr) benötigt.
2. Nicht mehr benötigte Konfigurationsdateien:
Löscht man ein Paket manuell oder wird es von Apt automatisch gelöscht, bleiben seine Konfigurationsdateien in der Regel erhalten - was ja auch sinnvoll ist: Hat man doch vielleicht in die Konfiguration des einen oder anderen Pakets viel Arbeit gesteckt, die sonst verloren ginge.
Wie viele und welche entfernte Pakete es gibt, von denen noch Konfigurationsdateien und Datendateien installiert sind, zeigt:
dpkg -l | awk '/^r/ {print $2}'
Wenn man sie alle loswerden will, geht das mit:
sudo aptitude --purge-unused purge $(dpkg -l | awk '/^r/ {print $2}')
Will man Konfigurationen für einige Pakete erhalten, muss man
-
entweder: die meist im Verzeichnis
/etc/<Paketname>
liegenden Konfigurationsdateien, die man erhalten will, mit Hilfe vontar
(um auch die Datei-Rechte zu erhalten) sichern (als root oder persudo
):cd /etc tar -c --one-file-system -f ~/<Paketname>-Backup.tar ./<Paketname>
den obigen
purge
-Befehl erst danach ausführen
und schließlich die Konfigurationsdateien wieder nach/etc
zurück kopieren:cd /etc tar -xvf ~/<Paketname>-Backup.tar rm ~/<Paketname>-Backup.tar
-
oder: man löscht die Konfigurationsdateien der mit dem ersten
dpkg
-Befehl angezeigten, bereits entfernten Pakete für jedes Paket, für das man dies möchte, einzeln mit:dpkg --purge <Paketname>
3. Pakete, die nicht zum aktuellen Release gehören:
Diese ermittelt man mit:
apt-show-versions | grep -v <release> | grep -v 'not installed'
wobei release
hier stable oder testing sein kann oder der entsprechende Toy-Story-Codename für das aktuelle Release, wie Bullseye oder Bookworm, je nachdem, was in der Datei /etc/sources.list
als Paketquelle angegeben ist.
Gibt es da Pakete, die man löschen will? Wenn ja, kann man sie mit apt entfernen und danach nochmal ein deborphan
(s.o.) durchführen.
Tipp: Findet man viele Pakete, die man deinstallieren will, macht es Sinn, den Prozess mit ein wenig awk-Magie zu vereinfachen:
Zuerst die mit obigem Befehl gefundenen Pakete als ein Paketname pro Zeile in eine Datei (hier: notinRepos.txt) schreiben:
apt-show-versions | grep -v <release> | grep -v 'not installed' | awk '{print $1}' > notinRepos.txt
Dann diese Datei bearbeiten, alle Zeilen mit den Paketen löschen, die man behalten will. Und schließlich die Liste der verbleibenden (zu löschenden) Pakete mit Hilfe von awk in eine Zeile schreiben lassen, so dass sie direkt von aptitude verarbeitet werden können:
sudo aptitude --purge-unused purge $(cat notinRepos.txt | awk '{printf "%s ", $1}')
Nun willkommen bei Familie Linux-Saubermann!
⇐ zurück zur Tipps & Tricks Übersicht
site info
© 2007-2022 Klaus-M. Klingsporn | Erstellt mit webgen | Seite zuletzt geändert: 28.8.2021 | Impressum