Quan el disc s’omple en un sistema Debian o Ubuntu, una de les primeres coses que convé mirar és quins paquets instal·lats ocupen més espai. Aquesta línia ho fa combinant dpkg-query amb sort, grep, head i awk:
dpkg-query -W -f='${Package}\t${Installed-Size}\n' | sort -k 2 -nr | grep -v deinstall | head -n 25 | awk '{printf "%.3f \t %s\n", $2/(1024), $1}'
Mostra els 25 paquets més grans, de més a menys, amb la mida en MiB. Funciona, però té un petit error: el grep -v deinstall no filtra res. A sota t’expliquem cada peça i et donem una versió corregida.
Pas a pas
| Peça | Què fa |
|---|---|
dpkg-query -W -f='${Package}\t${Installed-Size}\n' | Treu una línia per paquet amb el nom, un tabulador i la mida instal·lada en KiB |
sort -k 2 -nr | Ordena per la segona columna (-k 2), com a número (-n) i de gran a petit (-r) |
grep -v deinstall | Vol treure els paquets desinstal·lats… però la paraula deinstall no surt enlloc de la sortida, perquè el format no inclou l’estat |
head -n 25 | Es queda amb les 25 primeres línies |
awk '{printf "%.3f \t %s\n", $2/(1024), $1}' | Divideix la mida entre 1024 per passar-la a MiB i la mostra amb tres decimals, seguida del nom |
Exemple de resultat
En un Raspberry Pi amb Debian 13 i escriptori (primeres 10 línies):
285.215 chromium
280.011 firefox
149.594 mesa-vulkan-drivers
118.711 chromium-l10n
117.594 libllvm19
116.914 firmware-atheros
82.796 chromium-common
80.740 containerd
68.586 docker.io
61.892 firmware-mediatek
En un PC amb Ubuntu sovint dominen la llista els navegadors, els controladors gràfics, libllvm i els paquets del nucli (linux-modules-*, linux-firmware). Si hi veus moltes versions del nucli repetides, és senyal que es poden esborrar les antigues amb sudo apt autoremove.
L’error: paquets desinstal·lats que hi surten igualment
dpkg-query -W també mostra els paquets que has desinstal·lat però dels quals queda la configuració (estat rc), i conserven el camp Installed-Size. Per exemple:
$ dpkg-query -W -f='${Package}\t${Installed-Size}\t${db:Status-Status}\n' rpi-connect-lite
rpi-connect-lite 21273 config-files
Aquest paquet ja no és instal·lat, però amb la comanda original sortiria a la llista com si ocupés 20 MiB. Com que l’estat no forma part del format, grep -v deinstall no el pot treure.
Versió corregida
Afegim l’estat al format i ens quedem només amb els paquets realment instal·lats:
dpkg-query -W -f='${Installed-Size}\t${Package}\t${db:Status-Status}\n' | awk '$3=="installed"' | sort -nr | head -n 25 | awk '{printf "%8.1f MiB %s\n", $1/1024, $2}'
285.2 MiB chromium
280.0 MiB firefox
149.6 MiB mesa-vulkan-drivers
118.7 MiB chromium-l10n
117.6 MiB libllvm19
116.9 MiB firmware-atheros
82.8 MiB chromium-common
80.7 MiB containerd
68.6 MiB docker.io
61.9 MiB firmware-mediatek
...
Els canvis:
${db:Status-Status}afegeix una tercera columna amb l’estat (installed,config-files,not-installed…) iawk '$3=="installed"'deixa passar només els instal·lats.- La mida va a la primera columna, de manera que n’hi ha prou amb
sort -nr. %8.1f MiBalinea els números a la dreta i hi posa la unitat.
I quant ocupen en total tots els paquets instal·lats:
$ dpkg-query -W -f='${Installed-Size}\t${db:Status-Status}\n' | awk '$2=="installed"{s+=$1} END {printf "%.1f GiB\n", s/1024/1024}'
5.0 GiB
Tingues en compte
Installed-Sizeés una estimació que declara el paquet, no l’espai real mesurat al disc. No inclou els fitxers que el programa crea després (memòries cau, bases de dades, registres).- No compta Snap ni Flatpak: si fas servir aquests formats, mira
snap list --all(les revisions antigues ocupen espai) oflatpak list --columns=application,size. - Alternativa ja feta: el paquet
debian-goodiesincloudpigs, que fa justament això. - Abans d’esborrar un paquet gran, comprova què se n’emportaria amb
apt remove --simulate paquet.
Comandes relacionades
dpkg-query: totes les consultes a la base de dades de paquets.- L’equivalent amb
rpma Red Hat i Fedora. du -sk * | sort -nr: quins directoris ocupen més.df: espai lliure de cada disc.awkihead: les eines de la canonada.