Welche installierten Softwarepakete belegen den meisten Speicherplatz auf Debian?

76

Der Speicherplatz auf meiner Root-Partition geht zur Neige, daher möchte ich einige Anwendungen vom System löschen. Wie kann ich sehen, welche Softwarepakete den meisten Speicherplatz belegen? Kann man das von hier aus sehen aptitude?

Ich kenne mich mit allgemeinen Speicherplatzanalysatoren wie dfoder aus baobab, benötige jedoch Lösungen für installierte Anwendungen.

Mirzhan Irkegulov
quelle

Antworten:

53

Am einfachsten ist es zu rennen wajig large. Das Paket sollte ein apt-install-away sein.

Hier sind zwei Links für andere Möglichkeiten:

Denken Sie auch daran, dass die installierte Größe nur einen Teil des von Paketen belegten Speicherplatzes ausmacht. Die komprimierte Version befindet sich wahrscheinlich noch im Cache, und das nimmt auch etwas Platz ein. Sie können diese mit entfernen apt-get clean.

Killermist
quelle
4
Der Befehl zum Leeren des Paketcaches lautet apt-get clean. “Löscht das lokale Repository der abgerufenen Paketdateien” - man apt-get
manatwork
97

Der einfachste Weg (ohne zusätzliche Pakete zu installieren) ist:

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n

Hier werden die Pakete in der Größenreihenfolge angezeigt, wobei das größte Paket das letzte ist.

Leider enthält diese Liste auf zumindest einigen Systemen Pakete, die entfernt, aber nicht gelöscht wurden. Alle diese Pakete können mit folgendem Befehl gelöscht werden:

dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge

Wenn Sie deinstallierte Pakete nicht löschen möchten, können Sie diese Variante verwenden, um die Pakete aus der Liste herauszufiltern, die sich nicht im Status 'installiert' befinden:

dpkg-query -Wf '${db:Status-Status} ${Installed-Size}\t${Package}\n' | sed -ne 's/^installed //p'|sort -n
JosephH
quelle
2
"Installierte Größe" ist eine Vorausschätzung des für das installierte Paket benötigten Speicherplatzes. Es ist leider nicht die tatsächliche Größe.
Rolf
23

Da willst du see which [installed] software packages use the most disk space[,] from aptitude... kannst du natürlich nutzen aptitude! entweder über die CLI oder die Attraktivität von {interactive, TUI, non-CLI}. Sprechen wir zuerst über die CLI und dann über die TUI. In jedem Fall müssen Sie nur das wissen

  • Zu verwendende Befehlszeilenoptionen. Der folgende Text verwendet lange Optionen (um die Suche in der Dokumentation zu vereinfachen), aber natürlich sind auch kurze Optionen verfügbar.
  • zu verwendendes Kommandozeilenargument
  • Ausgabeformat-Zeichenfolge, die verwendet werden soll

Die einfachste Befehlszeile zum Anzeigen, welche installierten Softwarepakete den meisten Speicherplatz belegen, ist wahrscheinlich

aptitude search --sort '~installsize' --display-format '%p %I' '~i' | head

also lasst uns das aufschlüsseln:

  • --sortist die Paketsortierreihenfolge und ~installsizegibt eine Paketsortierrichtlinie an .
  • installsizebedeutet "Nach (geschätzter) installierter Größe sortieren", und das Vorhergehende ~bedeutet "Absteigend sortieren" (da die Standardeinstellung für alle Sortierrichtlinien aufsteigend ist).
  • --display-formatändert die <you guessed :->. Der Format - String '%p %I' sagt aptitudeausgeben Paketnamen, dann installiert Größe.
  • '~i'Weist aptitudean, nur installierte Pakete zu durchsuchen.
  • ... und, es sei denn , Sie haben sehr wenige installierten Pakete (mein ein bisschen-generic Debian - Workstation über 2400 hat), mögen Sie Rohr headoder lessoder eine Datei, oder vielleicht auch nur , wc -lum zu sehen , wie viele Zeilen aptitudewerden wieder.

Vielleicht möchten Sie auch

  1. Geben Sie die Linienbreite (in Zeichen) an aptitude, die bei der Anzeige verwendet werden soll, mit --width <your desired integer value/>. aptitudeStandardmäßig entspricht es Ihrer Terminalbreite, aber manchmal wird es falsch geraten, und manchmal möchten Sie in eine Datei schreiben usw.
  2. Zeigen Sie weitere Informationen in Ihrer Formatzeichenfolge an, oder ändern Sie die Feldbreite. Meine erweiterte Formatzeichenfolge wird beispielsweise '%30p %I %r %60d'angezeigt

    • %30p : Paketname in Feldbreite = 30 Zeichen
    • %I : Geschätzte Installationsgröße
    • %r : 'Anzahl der umgekehrten Abhängigkeiten': ungefähre Anzahl anderer installierter Pakete, die von diesem Paket abhängen
    • %60d : kurze Beschreibung des Pakets in Feldbreite = 60 Zeichen

Beachten Sie, dass Sie möglicherweise eine Einstellung vornehmen müssen, wenn Sie keine Änderungen in Ihrem Ausgabefeld sehen --width.

... und so etwas können Sie auch in {interactive, TUI} tun aptitude. Zum Beispiel, um die Voreinstellungen für das Anzeigeformat festzulegen,

  • Klicken Sie auf oder navigieren Sie zu Optionen-> Einstellungen
  • Scrollen Sie zu Das Anzeigeformat für Paketansichten
  • %Ian der gewünschten Position zum aktuellen Wert addieren

Um die Suche zu installierten Pakete in den interaktiven zu begrenzen aptitude,

  • drücken l(Kleinbuchstaben L)
  • ~iIn den Dialog eintreten

Um in den interaktiven auf installierte Größe zu sortieren aptitude,

  • Drücken Sie Shift-S(Großbuchstaben S)
  • installsizeIn den Dialog eintreten

Verweise:

Braiam
quelle
Ich bin mir nicht sicher, ob es eine Möglichkeit gibt, aber es wäre schön, die Größe immer in kB zu drucken, da dies das Sortieren oder die anderweitige Nachbearbeitung erheblich erleichtert.
Derobert
@derobert hat nach Möglichkeiten gesucht, wie ich den Leerraum in der Ausgabe von aptitude steuern kann. Anscheinend gibt es keine Möglichkeit, die Ausgabe von size zu ändern.
Braiam
@Braiam ja, wie viel Speicherplatz wird insgesamt gewonnen, wenn ich entferne *texlive*?
Terdon
@terdon mm ... wäre nicht aptitude -s remove '?and(texlive,~i)'genug? Außerdem können Sie einem bestimmten Paket ein User-Tag hinzufügen, um sie als Ganzes (wie die Tasks) zu bearbeiten.
Braiam
9

Falls Sie wajig nicht installieren möchten. Ich stelle mir vor, jeder hat Debian-Goodies installiert:

dpigs              - Show which installed packages occupy the most space
dfc
quelle
Wajig benötigt Python 3, was wiederum 40 MB entspricht. debian-goodies benötigt python 2.6+, also 700kb zusätzlich. Dies oder Josephs Antwort sind die besten!
Tim O'Brien
Mir ist aufgefallen, dass dpigstatsächlich das gleiche Ergebnis wie dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | headbei den Top Ten der installierten Pakete erzielt wird, die den meisten Platz einnehmen. Trotzdem dpigsist es einfach und kurz.
Clearkimura
8

Verwenden Sie zunächst ein Tool wie baobab( sudo apt-get install baobab), um anzuzeigen, wo dieser Bereich verwendet wird:

Bildbeschreibung hier eingeben

Das gibt Ihnen eine schöne grafische Übersicht und hilft Ihnen, den Platzbedarf einzugrenzen. Sie können diese Informationen auch über die Befehlszeile abrufen du:

$ sudo du -ch /

Führen Sie dies durch sort(unter der Annahme sort, dass GNU in Debian der Fall sein sollte), um nach der Verzeichnisgröße zu sortieren:

$ sudo du -ch / | sort -h

Im nächsten Schritt können Sie sehen, wie viel Speicherplatz ein bestimmtes Paket mit diesem Befehl belegt:

$ sudo apt-get --assume-no --purge remove "PACKAGE_NAME" | grep "be freed" | 
   awk '{print $4, $5}' 

texliveWenn Sie beispielsweise auf meinem System alle Pakete entfernen, werden 1.502 MB frei:

$ sudo apt-get --assume-no --purge remove "texlive*" | grep "be freed" | 
   awk '{print $4, $5}' 
1,502 MB

Abschließend können Sie diese Informationen für alle installierten Pakete mit diesem Befehl abrufen:

$ for i in $(dpkg -l | awk '($1=="ii"){print $2}'); do  
    echo -e "$i\t"$(sudo apt-get --assume-no --purge remove "$i" | 
                    grep "be freed" | awk '{print $4, $5}'); 
  done
terdon
quelle
3

Sie können das Paket wajig und den Befehl verwenden

wajig large

In der Hilfe wird erklärt, was dies bewirkt.

wajig large -h

usage: wajig large [-h]

List size of all large (>10MB) installed packages

Siehe auch die Projektseite .

Faheem Mitha
quelle
3

Um andere Antworten hinzuzufügen, wenn Sie die Befehlszeile mögen, können Sie gutes altes verwenden durep

# durep -td 1 /etc                         # or -td 2
[ /etc   319.4K (60 files, 43 dirs) ]
  90.2K [########                      ]  28.26% apache2/
  27.5K [##                            ]   8.62% apt/
  23.7K [##                            ]   7.43% mime.types
  19.7K [#                             ]   6.18% cron.daily/
  18.7K [#                             ]   5.87% services
  18.0K [#                             ]   5.64% security/
  14.7K [#                             ]   4.61% init.d/
  13.2K [#                             ]   4.13% ssl/
  11.1K [#                             ]   3.48% ld.so.cache
   9.0K [                              ]   2.81% locale.gen
   7.8K [                              ]   2.43% pam.d/
   4.5K [                              ]   1.42% default/
   4.3K [                              ]   1.35% skel/
   2.9K [                              ]   0.92% locale.alias

Mit können Sie wahrscheinlich Speicherplatz freigeben localepurge

# dpkg-reconfigure localepurge
# localepurge
localepurge: Disk space freed in /usr/share/locale: 26160 KiB
localepurge: Disk space freed in /usr/share/man: 1304 KiB

Total disk space freed by localepurge: 27464 KiB

Schließlich können Sie wahrscheinlich Symbole und Schriftarten entfernen, die manchmal viel Platz beanspruchen. Details finden Sie auf dieser Website

https://ownyourbits.com/2017/02/18/squeeze-disk-space-on-a-debian-system/

(Beispiele aus ownyourbits)

nachoparker
quelle
dpkg-reconfigure localepurgebeschwert sich darüber, dass das localepurgePaket nicht verfügbar ist.
Rolf
2

Ich habe immer debfosterund deborphanauf meinen Systemen ein paar weitere Tools zur Liste hinzugefügt. Sie sind am nützlichsten für die Suche nach alten Abhängigkeiten, die nach Upgrades auftreten.

apt-get autoremoveist großartig, bekommt aber nicht alles und da es den Installationsmarkierungen folgt, weiß es nicht immer, was Sie behalten möchten. Mit apt-markkönnen Sie es jedoch bis zu einem gewissen Grad steuern.

Überprüfen Sie auch: https://wiki.debian.org/ReduceDebian

XTL
quelle
0

Dies ist zwar eine schöne Sammlung von Werkzeugen, zu denen ich das KDE / QT Filelight hinzufügen möchte, das anderen Werkzeugen zur Nutzung des GUI-Speicherplatzes ähnelt, es ist jedoch nicht die wörtliche Antwort auf den Titel des Themas.

Wenn Sie die Frage dieses Threads wörtlich nehmen, das heißt, was sind in der Regel die größten Pakete in Ihrem System?

Die libreoffice Suite von Paketen, die kein einzelnes Paket ist, aber wirklich groß.

Der Linux-Kernel und die dazugehörigen Header-Pakete kommen, glaube ich, an zweiter Stelle, und wenn Sie mehrere Kernel installiert haben, die die meisten Systeme haben, wird jeder von ihnen ungefähr jedes Jahr 135 MB Festplattenspeicher größer, aber es ist ungefähr so ​​groß . Wenn Sie nicht-kostenlose Grafiktreiber verwenden, gibt es auch die zugehörigen Treiberpakete / -dateien. Beachten Sie, dass wie bei libreoffice jeder Kernel tatsächlich aus 2 oder 3 Paketen, dem Image, dem Header und den Treiberpaketen bestehen kann, sodass die Anzahl der Literalen pro Paketgröße nicht wirklich so genau ist, außer um einen groben Eindruck zu bekommen.

Danach gibt es im Paketpool von Debian keine riesige Anzahl von massiven Paketen, die mir bekannt sind.

Sobald die Root-Partition so groß wird, dass Sie sich fragen, wie Sie Pakete entfernen können, um sie zu verkleinern, ist es in der Regel an der Zeit, sie auf eine größere Root-Partition zu verschieben / deren Größe zu ändern.

apt-get clean ist natürlich das erste, was ausgeführt werden muss, um alle zwischengespeicherten .deb-Dateien zu entfernen, aber sobald Sie das entfernt haben und bis auf 2 Kernel sagen, wenn Sie immer noch nicht genug Platz haben, ist es mehr Dies ist praktisch, um die Partitionsgröße zu erhöhen, da die Bereinigungen usw. nur rote Fahnen sind, wenn Sie fast keinen Platz mehr auf der Root-Partition haben Aktualisierung. Das Entfernen von Konfigurationsdateien aus entfernten Paketen durch Bereinigungsaktionen hilft Ihnen nicht dabei, Speicherplatz wiederzugewinnen, da sie winzig sind, aber es ist schön, hin und wieder nur Cruft zu bereinigen, aber es sollte nicht Verwechseln Sie sich nicht damit, tatsächlich sinnvollen Speicherplatz wiederzugewinnen.

apt-get auto-remove ist auch nicht schlecht, aber beachten Sie, dass es manchmal falsch ist, wenn das Paket entfernt wird. Sie sollten diese Liste daher sorgfältig prüfen, bevor Sie apt das Material entfernen lassen. Technisch ist es besser, diese Liste zu löschen, damit Sie die Konfigurationsdateien gleichzeitig entfernen oder automatisch entfernen können.

Lizardx
quelle