¿Cómo enumero el software instalado con el tamaño instalado?

38

Me gustaría tener una lista del software instalado en mi máquina, junto con el espacio en disco que consumen. Preferiría poder ordenar por mayor / menor, pero eso no es una necesidad.

Soy el tipo de persona que instalará el software para probarlo y nunca limpiará después de mí.

Como resultado, mis 7 GB (Windows y mis datos están en particiones separadas, así como en un área de intercambio), la partición Ubuntu 11.04 está sufriendo, y ha comenzado a mostrar regularmente mensajes de advertencia.

Lewis Goddard
fuente
unix.stackexchange.com/questions/40442/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Respuestas:

23

Puede hacer esto gráficamente en Synaptic Instalar sináptico .

Primero, asegúrese de habilitar las columnas Tamaño instalado y Tamaño de descarga (o solo una si lo desea).

  • Para hacer esto, vaya a Configuración> Preferencias y elija Columnas y fuentes , luego marque las columnas que desea ver.
  • Luego haga clic en Aceptar .

Ventana de preferencias

  • Una vez que estén habilitados, puede enumerar los paquetes que ha instalado por descarga / tamaño instalado haciendo clic en la columna.

Columnas

  • Tenga en cuenta: no tengo mis paquetes listados de esa manera en esta captura de pantalla, pero funciona.
RolandiXor
fuente
¡Esto es precisamente lo que estaba buscando! Muchas gracias.
Lewis Goddard
@LewisGoddard: de nada.
RolandiXor
24
dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n

le muestra una lista de paquetes ordenados por tamaño

Florian Diesch
fuente
3
Sería mejor si pudieras mencionar la unidad del tamaño también.
jobin
Probablemente kilobytes
Andreas Hartmann
1
lo que es ;8en ${Installed-Size;8}?
n611x007
1
@naxa: Imprimir alineado a la derecha con un ancho de campo de 8
Florian Diesch
18

Solución preferida

He encontrado una respuesta más corta, que no requiere aptitude:

dpkg-query -Wf '${Installed-size}\t${Package}\n' | column -t

Antigua solución propuesta

El showcomando de aptitudepuede mostrar el tamaño instalado de un paquete.

Tengo este pequeño script, que hace uso de aptitude(para instalar por separado) para tener una lista de todos los paquetes instalados con tamaños:

#!/bin/bash

export LC_ALL=C

aptitude show $(dpkg-query -Wf '${Package}\n') |
  awk '$1 == "Package:"     { name = $2 }
       $1 == "Uncompressed" { printf("%10s %s\n", $3, name) }' |
  awk '$1 ~ /k/ { $1 *= 1 }; $1 ~ /M/ { $1 *= 1024 }
       { printf("%9d %s\n", $1, $2)}'

El tamaño se expresa en kilobytes y son aproximados, según lo devuelto por aptitude show pkg.

El script se puede mejorar usando una sola awkinvocación (pero soy vago :-)

enzotib
fuente
1
Es posible que desee lanzar una tubería al sort -nk1final de ese primer comando.
Marco Ceppi
@MarcoCeppi: sí, no era la principal preocupación del OP, y generalmente dejo de lado el pedido de mis scripts, dado que puede aplicarse de diferentes maneras según sea necesario.
enzotib
1
Esto también enumera el software que ya no está instalado. ¿Hay alguna forma de eliminarlos de la salida?
Rumpel
¿Desea una suma de estos paquetes de canalización que primero manda cut -f 1 | paste -sd+ | bc? También es posible grep antes cutpara que pueda obtener el tamaño instalado de solo paquetes específicos.
MeanEYE
5

Otra opción es usar la dpigsaplicación del debian-goodiespaquete:

NAME
   dpigs - Show which installed packages occupy the most space

SYNOPSIS
   dpigs [options]

DESCRIPTION
   dpigs sorts the installed packages by size and outputs the largest ones. Per
   default dpigs displays the largest 10 packages. You can change this value by
   using the -n option (see "OPTIONS"). The information is taken from the dpkg
   status file with grep-status(1).

OPTIONS
   -h, --help
       Display some usage information and exit.

   -n, --lines=N
       Display the N largest packages on the system (default 10).

   -s, --status=FILE
       Use FILE instead of the default dpkg status file (which is /var/lib/dpkg/status
       currently).

   -S, --source
       Display the largest source packages of binary packages installed on the system.
Drew Noakes
fuente
3

Puede ver dicha lista en el administrador de paquetes basado en terminal Aptitude:

  1. Aptitud abierta con sudo aptitude.
  2. Presiona S(S mayúscula) y escribe ~installsizeen el indicador. (El ~es para la clasificación descendente; puede omitirlo si desea los paquetes más pequeños en la parte superior).
  3. Por ahora, los paquetes están ordenados por tamaño dentro de cada nivel jerárquico. Para obtener una descripción general, querrá la menor cantidad de niveles posible. Presiona Gy entra statusen el indicador. Ahora todos los paquetes instalados están en una sola sección, ordenados por tamaño.
legoscia
fuente
1

Las otras respuestas aquí enumeran los paquetes instalados y desinstalados.

A continuación se enumeran solo los que están instalados actualmente:

dpkg-query -W -f='${Installed-Size;8}\t${Status;1}\t${Package}\n' | grep -v "\sd\s" | sort -n | cut -f1,3-

Que hace:

  1. Consultar el tamaño instalado, el estado y el nombre de todos los paquetes
  2. Filtrar paquetes desinstalados
  3. Cortar la columna de estado de la salida

La salida se parece a:

...
22376   vim-runtime
26818   linux-image-3.8.0-32-generic
28673   libc6-dbg
35303   libpython3.3-dev
40303   valgrind
40731   linux-firmware
41516   smbclient
58704   linux-headers-3.8.0-26
58733   linux-headers-3.8.0-32
93566   linux-image-extra-3.8.0-32-generic
Drew Noakes
fuente