Quali pacchetti software installati usano più spazio su disco su Debian?


77

Lo spazio su disco sulla mia partizione di root si sta esaurendo, quindi desidero eliminare alcune applicazioni dal sistema. Come posso vedere quali pacchetti software utilizzano più spazio su disco? È possibile visualizzarlo da aptitude?

Conosco analizzatori di spazio su disco generici come dfo baobab, ma ho bisogno di soluzioni per le applicazioni installate.


Risposte:


54

Il più semplice è correre wajig large. Il pacchetto dovrebbe essere sempre apt-installpronto.

Ecco due link per altri modi di farlo:

Ricorda inoltre che la dimensione installata è solo una parte dello spazio occupato dai pacchetti. La versione compressa è probabilmente ancora nella cache e anche questo occupa un po 'di spazio. Puoi rimuoverli con apt-get clean.


4
Il comando per svuotare la cache del pacchetto è apt-get clean. "Cancella il repository locale dei file di pacchetto recuperati" - man apt-get
manatwork

98

Il modo più semplice (senza installare pacchetti extra) è:

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

che visualizza i pacchetti in ordine di dimensione, ultimo pacchetto più grande.

Sfortunatamente su almeno alcuni sistemi, questo elenco include pacchetti che sono stati rimossi ma non eliminati. Tutti questi pacchetti possono essere eliminati eseguendo:

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

Oppure, se non si desidera eliminare i pacchetti disinstallati, è possibile utilizzare questa variante per filtrare dall'elenco i pacchetti che non si trovano nello stato "installato":

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

2
"Dimensioni installate" è una stima anticipata della quantità di spazio necessaria per il pacchetto installato. Non è la dimensione reale, temo.
Rolf,

23

Dal momento che vuoi see which [installed] software packages use the most disk space[,] from aptitude... ovviamente puoi usare aptitude! tramite la sua interfaccia CLI o {Interactive, TUI, non CLI}. Parliamo prima della CLI, quindi della TUI. Ad ogni modo, devi solo conoscere il

  • opzioni da riga di comando da utilizzare. Il testo seguente utilizza opzioni lunghe (per facilitare la ricerca della documentazione), ma ovviamente sono disponibili anche opzioni brevi.
  • argomento da riga di comando da usare
  • stringa del formato di output da utilizzare

La riga di comando più semplice per mostrare quali pacchetti software installati utilizzano la maggior parte dello spazio su disco è probabilmente

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

quindi suddividiamolo:

  • --sortè l'ordinamento dei pacchetti e ~installsizespecifica una politica di ordinamento dei pacchetti .
  • installsizesignifica "ordina per dimensione (stimata) installata" e la precedente ~indica ordinamento decrescente (poiché il valore predefinito per tutti i criteri di ordinamento è crescente).
  • --display-formatcambia il <you guessed :->. La stringa di formato '%p %I' indica il aptitudenome del pacchetto di output, quindi la dimensione installata.
  • '~i'dice aptitudedi cercare solo i pacchetti installati.
  • ... e, se non avete molto pochi i pacchetti installati (mia workstation Debian po 'generico ha più di 2400), si consiglia di tubo heado di lesso di un file, o forse solo wc -lper vedere quante linee aptitudetorneremo.

Potresti anche volerlo

  1. specificare la larghezza della linea (in caratteri) aptitudeda utilizzare durante la visualizzazione, con --width <your desired integer value/>. aptitudeverrà impostato automaticamente su ciò che ritiene essere la larghezza del terminale, ma a volte indovina in modo errato, a volte vuoi scrivere su un file, ecc.
  2. visualizzare ulteriori informazioni nella stringa di formato o modificare la larghezza dei campi. Ad esempio, '%30p %I %r %60d'viene visualizzata la mia stringa di formato avanzata

    • %30p : nome del pacchetto nel campo larghezza = 30 caratteri
    • %I : dimensione di installazione stimata
    • %r : 'reverse dipende contare': numero approssimativo di altri pacchetti installati che dipendono da questo pacchetto
    • %60d : breve descrizione del pacchetto in larghezza campo = 60 caratteri

Nota che, se non vedi cambiamenti nel tuo campo di output, probabilmente devi impostare --width.

... e puoi anche fare questo genere di cose in {interattivo, TUI} aptitude. Ad esempio, per impostare la preferenza del formato di visualizzazione,

  • fai clic o vai su Opzioni-> Preferenze
  • scorrere fino a Il formato di visualizzazione per le visualizzazioni del pacchetto
  • aggiungere %Ial valore corrente nella posizione desiderata

Per limitare la ricerca ai pacchetti installati in interattivo aptitude,

  • premere l(minuscolo L)
  • entra ~inella finestra di dialogo

Per ordinare in base alle dimensioni installate nell'interattivo aptitude,

  • premere Shift-S(maiuscolo S)
  • entra installsizenella finestra di dialogo

Riferimenti:


Non sono sicuro che ci sia un modo per farlo, ma sarebbe bello stampare sempre le dimensioni in kB, ciò renderebbe molto più semplice l'ordinamento o altrimenti il ​​postprocesso.
derobert,

@derobert stava osservando come avrei potuto controllare lo spazio bianco nell'output di aptitude, inoltre, apparentemente non c'è modo di cambiare l'output delle dimensioni.
Braiam,

@Braiam sì, qual è la quantità totale di spazio guadagnato se rimuovo *texlive*?
terdon

@terdon mm ... non aptitude -s remove '?and(texlive,~i)'sarebbe abbastanza? Inoltre, puoi aggiungere un tag utente a determinati pacchetti in modo da poterli manipolare nel loro insieme (come le attività).
Braiam,

9

Nel caso in cui non si desideri installare wajig. Immagino che tutti abbiano debian-goodies installati:

dpigs              - Show which installed packages occupy the most space

wajig richiede python 3 che è un altro 40mb. debian-goodies richiede python 2.6+ e quindi 700kb aggiuntivi. Questa o la risposta di Joseph H sono le migliori!
Tim O'Brien,

Ho notato che in dpigsrealtà ha lo stesso risultato di dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head, che è la top ten dei pacchetti installati che occupano più spazio. Tuttavia, dpigsè semplice e breve.
clearkimura,

8

Prima di tutto, usa uno strumento come baobab( sudo apt-get install baobab) per mostrarti dove viene utilizzato quello spazio:

inserisci qui la descrizione dell'immagine

Questo ti darà una bella panoramica grafica e ti aiuterà a restringere ciò che sta occupando il tuo spazio. Puoi anche ottenere queste informazioni dalla riga di comando usando du:

$ sudo du -ch /

Passalo attraverso sort(supponendo GNU sort, che dovrebbe essere il caso in Debian) per ordinare in base alla dimensione della directory:

$ sudo du -ch / | sort -h

Come passaggio successivo, puoi vedere quanto spazio utilizza un determinato pacchetto con questo comando:

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

Nel mio sistema, ad esempio, la rimozione di tutti i texlivepacchetti libererà 1.502 MB:

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

Infine, puoi ottenere queste informazioni per tutti i pacchetti installati con questo comando:

$ 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

3

È possibile utilizzare il pacchetto wajig e il comando

wajig large

L'aiuto spiega cosa fa questo.

wajig large -h

usage: wajig large [-h]

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

Vedi anche la pagina del progetto .


3

per aggiungere altre risposte, se ti piace la riga di comando puoi usare il buon vecchio 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

Probabilmente puoi liberare spazio usando 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

Infine, puoi probabilmente eliminare icone e caratteri che a volte possono occupare molto spazio. Vedi i dettagli su questo sito web

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

(esempi estratti dalle proprie abitudini)


dpkg-reconfigure localepurgesi lamenta del fatto che il localepurgepacchetto non sia disponibile.
Rolf,

2

Aggiungendo alcuni altri strumenti all'elenco, ho sempre usato debfostere deborphansui miei sistemi. Sono molto utili per la caccia alle vecchie dipendenze che sono in giro dopo gli aggiornamenti.

apt-get autoremoveè fantastico, ma non ottiene tutto e poiché segue i segni di installazione, non sempre sa esattamente cosa desideri conservare. L'uso apt-markconsente di indirizzarlo in una certa misura, tuttavia.

Controlla anche: https://wiki.debian.org/ReduceDebian


0

Mentre questa è una bella raccolta di strumenti, a cui aggiungerei KDE / QT Filelight, che è simile ad altri strumenti di utilizzo dello spazio su disco della GUI, non è la risposta letterale al titolo dell'argomento.

Se prendi letteralmente la domanda di questo thread, cioè quali sono i pacchetti più grandi nel tuo sistema, di norma sono:

La suite di pacchetti libreoffice, che non è un singolo pacchetto, ma è davvero grande.

Penso che il kernel linux e i pacchetti di header associati vengano in secondo luogo, e se hai più kernel installati, che la maggior parte dei sistemi tende ad avere, ognuno è in giro penso che 135 MB di spazio su disco, all'incirca, diventano più grandi ogni anno, ma è così grande . Se si utilizzano driver video non liberi ci sarebbero anche i pacchetti / file di driver associati. Si noti che, come con libreoffice, ogni kernel può effettivamente essere composto da 2 o 3 pacchetti, i pacchetti immagine, intestazione e driver, quindi un conteggio letterale per dimensione del pacchetto non è poi così preciso se non per avere un senso grezzo.

Dopo quelli, non ci sono molti pacchetti enormi nel pool di pacchetti di Debian di cui sono a conoscenza.

Trovo che una volta che la partizione di root inizia a diventare abbastanza grande da dove inizi a chiederti come sbarazzarti dei pacchetti per ridurla, è generalmente tempo di spostarsi / ridimensionare su una partizione di root più grande.

apt-get clean, ovviamente, è la prima cosa da eseguire, per sbarazzarsi di tutti i file .deb memorizzati nella cache, ma una volta rimosso quello, e tutti tranne 2 kernel, se sei ancora bloccato con spazio insufficiente, è più pratico per aumentare la dimensione della partizione dal momento che le pulizie ecc. sono solo bandiere rosse in esecuzione vicino allo spazio della partizione di root, il che può essere un vero problema se apt non ha abbastanza spazio in / var per scaricare ed estrarre effettivamente pacchetti per un l'aggiornamento. Eliminare con le operazioni di eliminazione i file di configurazione rimanenti dai pacchetti rimossi non ti gioverà affatto in termini di recupero dello spazio su disco poiché sono piccoli, ma è bello fare ora e poi solo per ripulire la cruft, ma non dovrebbe essere scambiato per recuperare effettivamente spazio su disco significativo.

apt-get auto-remove non è neanche male, ma tieni presente che a volte è sbagliato che il pacchetto venga rimosso, quindi vuoi controllare attentamente l'elenco prima di lasciare che apt rimuova il materiale. Tecnicamente è meglio eliminare tale elenco, in questo modo ti sbarazzerai anche dei file di configurazione, rimuovendo o rimuovendo automaticamente crederò di lasciarli al loro posto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.