it-swarm.com.de

Welche installierten Softwarepakete belegen den meisten Speicherplatz auf Debian?

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? Ist es möglich, das von aptitude aus anzuzeigen?

Ich kenne generische Speicherplatzanalysatoren wie df oder baobab, aber ich benötige Lösungen für installierte Anwendungen.

89

Am einfachsten ist es, wajig large Auszuführen. Das Paket sollte ein apt-install - entfernt sein.

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

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

60
killermist

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. Das größte Paket ist das letzte.

Leider enthält diese Liste zumindest auf einigen Systemen Pakete, die entfernt, aber nicht gelöscht wurden. Alle diese Pakete können gelöscht werden, indem Folgendes ausgeführt wird:

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

Wenn Sie nicht deinstallierte Pakete löschen möchten, können Sie mit dieser Variante die Pakete, die sich nicht im Status "Installiert" befinden, aus der Liste herausfiltern:

dpkg-query -Wf '${db:Status-Status} ${Installed-Size}\t${Package}\n' | sed -ne 's/^installed //p'|sort -n
110
JosephH

Da Sie see which [installed] software packages use the most disk space[,] from aptitude ... möchten, können Sie natürlich aptitude verwenden! entweder über seine CLI oder {Interactive, TUI, Non-CLI} Awesomeness. Lassen Sie uns zuerst die CLI und dann die TUI diskutieren. 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 Befehlszeilenargument
  • zu verwendende Ausgabeformatzeichenfolge

Die einfachste Befehlszeile, um anzuzeigen, welche installierten Softwarepakete den meisten Speicherplatz belegen, ist wahrscheinlich

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

lassen Sie uns das aufschlüsseln:

  • --sort ist die Paketsortierreihenfolge, und ~installsize gibt eine Paketsortierrichtlinie an.
  • installsize bedeutet "Sortieren nach (geschätzter) installierter Größe", und das vorhergehende ~ bedeutet sortieren absteigend (da die Standardeinstellung für alle Sortierrichtlinien aufsteigend ist).
  • --display-format ändert den <you guessed :->. Die Formatzeichenfolge '%p %I' weist aptitude an, den Paketnamen und dann die installierte Größe auszugeben.
  • '~i' weist aptitude an, nur installierte Pakete zu durchsuchen.
  • ... und wenn Sie nicht sehr wenige installierte Pakete haben (meine irgendwie generische Debian-Workstation hat über 2400), möchten Sie zu head oder less oder eine Datei oder vielleicht nur wc -l, um zu sehen, wie viele Zeilen aptitude zurückgegeben werden.

Vielleicht möchten Sie auch

  1. geben Sie die Zeilenbreite (in Zeichen) an, die aptitude bei der Anzeige verwenden soll, mit --width <your desired integer value/>. aptitude verwendet standardmäßig die Terminalbreite, aber manchmal wird falsch geraten, und manchmal möchten Sie in eine Datei usw. schreiben.
  2. zeigen Sie weitere Informationen in Ihrer Formatzeichenfolge an oder ändern Sie die Feldbreiten. Zum Beispiel wird meine erweiterte Formatzeichenfolge '%30p %I %r %60d' angezeigt

    • %30p: Paketname in Feldbreite = 30 Zeichen
    • %I: geschätzte Installationsgröße
    • %r: 'umgekehrt hängt von der Anzahl ab': ungefähre Anzahl anderer installierter Pakete, die von diesem Paket abhängen
    • %60d: Kurzbeschreibung des Pakets in Feldbreite = 60 Zeichen

Beachten Sie, dass Sie wahrscheinlich --width festlegen müssen, wenn Sie keine Änderungen in Ihrem Ausgabefeld sehen.

... und Sie können so etwas auch in der {interaktiven, TUI} aptitude tun. Zum Beispiel, um die Anzeigeformateinstellung einzustellen,

  • klicken oder navigieren Sie zu Optionen-> Einstellungen
  • scrollen Sie zu Das Anzeigeformat für Paketansichten
  • fügen Sie %I zum aktuellen Wert an der gewünschten Position hinzu

Um die Suche auf installierte Pakete im interaktiven aptitude zu beschränken,

  • drücken Sie l (Kleinbuchstaben L)
  • geben Sie ~i in den Dialog ein

So sortieren Sie die installierte Größe im interaktiven aptitude,

  • drücken Sie Shift-S (Großbuchstaben S)
  • geben Sie installsize in den Dialog ein

Verweise:

23
Braiam

Für den Fall, dass Sie wajig nicht installieren möchten. Ich stelle mir vor, jeder hat Debian-Goodies installiert:

dpigs              - Show which installed packages occupy the most space
9
dfc

Verwenden Sie zunächst ein Tool wie baobab (Sudo apt-get install baobab) um Ihnen zu zeigen, wo dieser Raum verwendet wird:

enter image description here

Das gibt Ihnen einen schönen grafischen Überblick und hilft Ihnen, den Platz einzugrenzen. Sie können diese Informationen auch über die Befehlszeile mit du abrufen:

$ Sudo du -ch /

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

$ Sudo du -ch / | sort -h

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

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

Wenn Sie beispielsweise auf meinem System alle texlive -Pakete entfernen, werden 1.502 MB freigegeben:

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

Schließlich 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
8
terdon

Sie können das Paket wajig und den Befehl verwenden

wajig large

Die Hilfe erklärt, was dies bewirkt.

wajig large -h

usage: wajig large [-h]

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

Siehe auch Projektseite .

3
Faheem Mitha

um andere Antworten zu ergänzen, können Sie, wenn Sie die Befehlszeile mögen, das gute alte durep verwenden

# 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

Sie können wahrscheinlich Speicherplatz mit localepurge freigeben

# 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 eigenen Bits)

3
nachoparker

Ich habe der Liste ein paar weitere Tools hinzugefügt und auf meinen Systemen immer debfoster und deborphan verwendet. Sie sind am nützlichsten für die Suche nach alten Abhängigkeiten, die nach Upgrades herumhängen.

apt-get autoremove ist großartig, bekommt aber nicht alles und da es den Installationsmarkierungen folgt, weiß es nicht immer, was Sie behalten möchten. Verwenden von apt-mark lässt Sie es jedoch bis zu einem gewissen Grad steuern.

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

2
XTL

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

Wenn Sie die Frage nach diesem Thread wörtlich nehmen, dh was sind in der Regel die größten Pakete in Ihrem System:

Die libreoffice-Paketsuite, die kein einzelnes Paket ist, aber wirklich groß.

Der Linux-Kernel und die zugehörigen Header-Pakete kommen meiner Meinung nach an zweiter Stelle, und wenn Sie mehrere Kernel installiert haben, die die meisten Systeme normalerweise haben, ist jeder ungefähr ungefähr 135 MB Speicherplatz, der ungefähr jedes Jahr größer wird, aber es ist ungefähr so ​​groß . Wenn Sie nicht kostenlose Grafiktreiber verwenden, sind auch die zugehörigen Treiberpakete/-dateien vorhanden. Beachten Sie, dass wie bei libreoffice jeder Kernel tatsächlich aus 2 oder 3 Paketen bestehen kann, den Image-, Header- und Treiberpaketen. Daher ist eine Literalanzahl pro Paketgröße nicht so genau, außer um einen groben Sinn zu erhalten.

Danach gibt es nicht mehr viele massive Pakete in Debians Paketpool, die mir bekannt sind.

Ich finde, sobald die Root-Partition so groß wird, dass Sie sich fragen, wie Sie Pakete entfernen können, um sie zu verkleinern, ist es im Allgemeinen an der Zeit, auf eine größere Root-Partition zu wechseln.

apt-get clean ist natürlich das erste, was ausgeführt wird, um alle zwischengespeicherten .deb-Dateien zu entfernen, aber wenn Sie das entfernen und fast 2 Kernel sagen, wenn Sie immer noch nicht genug Platz haben, ist es mehr Praktisch, um die Partitionsgröße zu erhöhen, da es sich bei den Bereinigungen usw. nur um rote Fahnen handelt, bei denen der Root-Partitionsspeicherplatz fast leer ist. Dies kann ein echtes Problem sein, wenn apt nicht genügend Platz in/var hat, um Pakete für eine Datei tatsächlich herunterzuladen und zu extrahieren Aktualisierung. Das Bereinigen durch Bereinigungsaktionen übrig gebliebene Konfigurationsdateien aus entfernten Paketen bringt Ihnen überhaupt nichts, wenn es darum geht, Speicherplatz wiederzugewinnen, da sie winzig sind, aber es ist schön, ab und zu nur Cruft zu bereinigen, aber es sollte nicht Es ist nicht zu verwechseln, wenn tatsächlich ein sinnvoller Speicherplatz wiederhergestellt wird.

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 gesehen ist es besser, diese Liste zu löschen. Auf diese Weise werden auch die Konfigurationsdateien gleichzeitig entfernt. Entfernen oder automatisch entfernen, glaube ich, lassen Sie sie an Ort und Stelle.

0
Lizardx