Softwareentwickler / Software Developer
Wischmopps an eine rote Wand gelehnt

Linux Clean-Up | Wie kann ich Debian aufräumen?

In einem vorherigen Artikel habe ich berichtet, welche Programme ich auf meinem Server installiert habe. Diese Liste ist aber nicht vollständig und viele Anwendungen habe ich nach einer kurzen Testphase auch wieder deinstalliert. Dabei kommt es vor, dass ich Sachen nicht richtig deinstalliere und einige Konfigurations-Dateien auf der Festplatte bleiben, obwohl ich diese gar nicht mehr brauche. Deswegen möchte ich heute mal ein paar Tipps geben, wie man Debian mit apt-get und aptitude aufräumen kann.

Überflüssige Konfigurationsdateien

Wie erwähnt bleiben nach dem Löschen einer Anwendung gerne mal Konfigurationsdateien liegen, die im Prinzip nur Platz verschwenden. Der Grund, warum Debian solche Dateien grundsätzlich behält, ist, dass alte Einstellungen nach einer Neuinstallation noch vorhanden sind. Wählt man apt-get purge statt apt-get remove, so sollten diese eigentlich automatisch gelöscht werden. Aber scheinbar habe ich nicht immer daran gedacht. Um diese überflüssigen Dateien zu identifizieren gibt es folgenden Befehl:

sudo aptitude search ~c

Man erhält eine Liste und kann nun manuell löschen oder man ersetzt search durch purge und es geschieht ganz automatisch.

Veraltete Pakete

Nach den alten Konfigurationsdateien soll es jetzt alten Paketen an den Kragen gehen. Es handelt sich dabei um Pakete, die nicht mehr länger in den unter /etc/apt/ konfigurierten Quellen enthalten sind. Dafür kann es verschiedene Gründe geben. So kann es sein, dass der Autor die Arbeit eingestellt hat, es zu wenig Nutzer gab oder eine aktuelle Version unter einem anderem Namen paketiert wurde. So oder so sollten veraltete Pakete nicht mehr verwendet werden, da sie keine Sicherheitsupdates mehr erhalten und so eine potentielle Gefahr darstellen. Alle Pakete, auf die diese Bedingungen zutreffen, findet man mit:

sudo aptitude search ~o

Auch hier gilt, dass man search durch purge ersetzen kann und so alle aufgelisteten Pakete gelöscht werden.

Pakete von Dritt-Anbietern

Mit der Hilfe von APT ist es ganz einfach, neue Repositorys anzugeben und Pakete von Dritt-Anbietern zu installieren. Das Problem hierbei ist, dass es sein kann, dass ein bei der Einrichtung noch gut gepflegtes Repository mit der Zeit zugemüllt und nicht mehr gewartet wird.

Jedes dieser Repository sollte eine RELEASE-Datei mit Informationen für APT beinhalten. Dadurch ist es möglich abzufragen, ob denn ein Paket installiert ist, für das es für das verwendete System – in diesem Fall Debian – gar keine Quellen (mehr) gibt.

sudo aptitude search '~S ~i !~ODebian !~o'

Nicht mehr benötigte Pakete

Einige Pakete führen bei der Installation automatisch auch die Installation von anderen Paketen aus, zu denen eine Abhängigkeit besteht. Dies ist notwendig, um die Lauffähigkeit des gewünschten Programmes sicherzustellen. Bei der Deinstallation kann es aber sein, dass diese dann nicht automatisch auch wieder mit entfernt werden, sodass über folgenden Befehl alle Pakete gefunden werden, die nicht mehr benötigt werden.

sudo apt-get autoremove

Empfohlene, aber nicht mehr benötigte Pakete

Will man noch ein bisschen mehr erreichen als über den vorherigen Befehl kann man nun nicht nur danach suchen, dass es auf ein Paket gar keine Abhängigkeiten mehr gibt. Es wird bei diesen Abhängigkeiten nämlich noch in verschiedene Stufen unterteilt. So kann es zum Beispiel notwendig sein, ein anderes Programm vorher zu installieren, in einem anderen Fall kann es aber auch nur empfohlen. Das heißt, die Anwendung läuft dann zwar besser, funktioniert aber auch ohne. Über den folgenden Befehl, lassen sich alle Programme finden, von denen kein anderes Programm zwingend abhängig ist und somit rein theoretisch entfernt werden kann.

sudo aptitude search '?and( ?automatic(?reverse-recommends(?installed)), ?not(?automatic(?reverse-depends(?installed))) )' | sudo awk '{ print $3 }' | sudo xargs dpkg -P

Temp-Ordner

Der temp-Ordner, also der Ort, wo temporäre Dateien abgelegt werden, wird nach einem Neustart normalerweise automatisch aufgeräumt. Mein Server läuft nun aber schon seit einer ganzen Weile, ohne dass ich einen Neustart durchgeführt habe. Damit das temp-Verzeichnis nicht zugemüllt wird, habe ich einen wöchentlichen Cronjob eingerichtet, der nach Dateien sucht, die älter als 10 Tage sind und löscht diese. Meiner Meinung nach kann man nach einer solchen Zeitspanne davon ausgehen, dass diese Dateien dann nicht mehr benötigt werden. Der Befehl sieht folgendermaßen aus:

sudo find /tmp -ctime +10 -exec sudo rm -rf {} +

Veraltete Kernels

Installiert man einen neuen Linux-Kernel, wird der alte Kernel nicht automatisch deinstalliert. Das ist auch sinnvoll, damit man bei Problemen mit der neuen Version auf den alten Stand zurückgreifen kann. Nach einiger Zeit nehmen die veralteten Kernels dann aber doch im Prinzip nur noch Platz weg und können wie folgt gelöscht werden. Dabei wird natürlich nicht der aktuelle Kernel entfernt.

sudo apt-get purge $( sudo dpkg --list | sudo egrep 'linux-image-[0-9]' | sudo awk '{print $3,$2}' | sudo sort -nr | sudo tail -n +2 | sudo grep -v $(uname -r) | sudo awk '{ print $2}')

APT-Cache

Der Paketmanager selber hält einen Cache, wo zuletzt abgerufen Informationen für den schnellen erneuten Zugriff gespeichert werden. Dieser nimmt zwar nicht das meiste an Speicherplatz weg, kann aber wie folgt geleert werden.

sudo apt-get clean

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

3 Gedanken zu “Linux Clean-Up | Wie kann ich Debian aufräumen?”