¿Qué paquetes de software instalados usan más espacio en disco en Debian?


77

El espacio en disco en mi partición raíz se está agotando, por lo que quiero eliminar algunas aplicaciones del sistema. ¿Cómo puedo ver qué paquetes de software usan más espacio en disco? ¿Es posible ver eso desde aptitude?

Conozco analizadores genéricos de espacio en disco como dfo baobab, pero necesito soluciones para aplicaciones instaladas.


Respuestas:


54

Lo más fácil es correr wajig large. El paquete debe estar apt-installausente.

Aquí hay dos enlaces para otras formas de hacerlo:

También recuerde que el tamaño instalado es solo parte del espacio ocupado por los paquetes. La versión comprimida probablemente todavía esté en el caché, y eso también ocupa algo de espacio. Puedes eliminar esos con apt-get clean.


44
El comando para vaciar la caché del paquete es apt-get clean. "Borra el repositorio local de archivos de paquetes recuperados" - man apt-get
manatwork

98

La forma más fácil (sin instalar paquetes adicionales) es:

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

que muestra los paquetes en orden de tamaño, el paquete más grande al final.

Desafortunadamente en al menos algunos sistemas, esta lista incluye paquetes que se han eliminado pero no se han purgado. Todos estos paquetes se pueden purgar ejecutando:

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

O si no desea purgar los paquetes desinstalados, puede usar esta variante para filtrar los paquetes que no están en el estado 'instalado' de la lista:

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

2
"Tamaño instalado" es una estimación preferente de cuánto espacio necesitaría el paquete instalado. No es el tamaño real, me temo.
Rolf

23

Ya que quieres see which [installed] software packages use the most disk space[,] from aptitude... ¡por supuesto que puedes usar aptitude! a través de su genialidad CLI o {interactive, TUI, non-CLI}. Discutamos primero la CLI, luego la TUI. De cualquier manera, solo necesitas saber el

  • opciones de línea de comandos para usar. El siguiente texto usa opciones largas (para facilitar la búsqueda de documentación), pero por supuesto también hay opciones cortas disponibles.
  • argumento de línea de comando para usar
  • cadena de formato de salida para usar

La línea de comandos más básica para mostrar qué paquetes de software instalados utilizan más espacio en disco es probablemente

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

así que analicemos eso:

  • --sortes el orden de clasificación de paquetes y ~installsizeespecifica una política de clasificación de paquetes .
  • installsizesignifica 'ordenar según el tamaño instalado (estimado)', y lo anterior ~significa ordenar descendente (ya que el valor predeterminado para todas las políticas de clasificación es ascendente).
  • --display-formatcambia el <you guessed :->. La cadena de formato '%p %I' indica el aptitudenombre del paquete de salida, luego el tamaño instalado.
  • '~i'le dice aptitudeque busque solo paquetes instalados.
  • ... y, a menos que tenga muy pocos paquetes instalados (mi un poco genérico estación de trabajo de Debian tiene más de 2400), que desea tubería a heado lesso un archivo, o tal vez sólo wc -lpara ver cuántas líneas aptitudevolveremos.

Quizás también quieras

  1. especifique el ancho de línea (en caracteres) para aptitudeusar al mostrar, con --width <your desired integer value/>. aptitudepredeterminará lo que cree que es el ancho de su terminal, pero a veces adivina mal, y a veces desea escribir en un archivo, etc.
  2. muestre más información en su cadena de formato o cambie los anchos de campo. Por ejemplo, mi cadena de formato mejorado '%30p %I %r %60d'muestra

    • %30p : nombre del paquete en ancho de campo = 30 caracteres
    • %I : tamaño de instalación estimado
    • %r : 'recuento inverso depende': número aproximado de otros paquetes instalados que dependen de este paquete
    • %60d : descripción breve del paquete en ancho de campo = 60 caracteres

Tenga en cuenta que, si no ve cambios en su campo de salida, probablemente necesite configurarlo --width.

... y también puedes hacer este tipo de cosas en {interactive, TUI} aptitude. Por ejemplo, para establecer la preferencia de formato de visualización,

  • haga clic o navegue a Opciones-> Preferencia
  • desplácese a El formato de visualización para vistas de paquete
  • agregar %Ial valor actual en la posición deseada

Para limitar la búsqueda a paquetes instalados en el interactivo aptitude,

  • presione l(minúsculas L)
  • entrar ~ien el diálogo

Para ordenar por tamaño instalado en el interactivo aptitude,

  • presione Shift-S(mayúscula S)
  • entrar installsizeen el diálogo

Referencias


No estoy seguro de si hay una manera de hacerlo, pero sería bueno imprimir siempre el tamaño en kB, eso facilitaría mucho la clasificación o el proceso posterior.
derobert

@derobert estaba mirando cómo podía controlar el espacio en blanco en la salida de aptitud, además, aparentemente no hay forma de cambiar la salida de tamaño.
Braiam

@Braiam sí, ¿cuál es la cantidad total de espacio ganado si elimino *texlive*?
terdon

@terdon mm ... ¿no aptitude -s remove '?and(texlive,~i)'sería suficiente? Además, puede agregar una etiqueta de usuario a cierto paquete para poder manipularlos como un todo (como las tareas).
Braiam

9

En caso de que no quieras instalar wajig. Me imagino que todos tienen debian-goodies instalados:

dpigs              - Show which installed packages occupy the most space

Wajig requiere Python 3, que es otro 40mb. Debian-Goodies requiere Python 2.6+, por lo que tiene 700kb adicionales. ¡Esta o la respuesta de JosephH son las mejores!
Tim O'Brien

Noté que en dpigsrealidad tiene el mismo resultado que dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head, que son los diez mejores paquetes instalados que ocupan más espacio. Aún así, dpigses simple y corto.
clearkimura

8

En primer lugar, use una herramienta como baobab( sudo apt-get install baobab) para mostrarle dónde se usa ese espacio:

ingrese la descripción de la imagen aquí

Eso le dará una buena descripción gráfica y lo ayudará a reducir lo que está ocupando su espacio. También puede obtener esta información en la línea de comando usando du:

$ sudo du -ch /

Pase esto sort(suponiendo GNU sort, que debería ser el caso en Debian) para ordenar por tamaño de directorio:

$ sudo du -ch / | sort -h

Como siguiente paso, puede ver cuánto espacio está utilizando un paquete en particular con este comando:

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

En mi sistema, por ejemplo, eliminar todos los texlivepaquetes liberará 1,502 MB:

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

Finalmente, puede obtener esta información para todos los paquetes instalados con este 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

Puede usar el paquete wajig y el comando

wajig large

La ayuda explica lo que esto hace.

wajig large -h

usage: wajig large [-h]

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

Ver también la página del proyecto .


3

para agregar a otras respuestas, si te gusta la línea de comandos puedes usar buenos viejos 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

Probablemente pueda liberar espacio 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

Finalmente, probablemente pueda deshacerse de los iconos y las fuentes que a veces pueden ocupar mucho espacio. Ver detalles en este sitio web

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

(ejemplos extraídos de ownyourbits)


dpkg-reconfigure localepurgese queja de que el localepurgepaquete no está disponible.
Rolf

2

Agregando algunas herramientas más a la lista, siempre he usado debfostery deborphanen mis sistemas. Son más útiles para buscar dependencias antiguas que están rondando después de las actualizaciones.

apt-get autoremovees genial, pero no lo consigue todo y dado que sigue las marcas de instalación, no siempre sabe lo que desea conservar. Sin apt-markembargo, el uso le permite dirigirlo hasta cierto punto.

Compruebe también: https://wiki.debian.org/ReduceDebian


0

Si bien esta es una buena colección de herramientas, a las que agregaría KDE / QT Filelight, que es similar a otras herramientas de uso de espacio en disco gui, no es la respuesta literal al título del tema.

Si toma la pregunta de este hilo literalmente, es decir, cuáles son los paquetes más grandes en su sistema, como regla, son:

El conjunto de paquetes de libreoffice, que no es un paquete único, pero es realmente grande.

El kernel de Linux y los paquetes de encabezado asociados vienen, creo, en segundo lugar, y si tiene varios kernels instalados, que la mayoría de los sistemas tienden a tener, cada uno está alrededor, creo que 135 mB de espacio en disco, más o menos, se hace más grande cada año, pero es casi tan grande . Si utiliza controladores de video no gratuitos, también habrá paquetes / archivos de controladores asociados. Tenga en cuenta que, al igual que con libreoffice, cada núcleo en realidad puede estar compuesto de 2 o 3 paquetes, la imagen, el encabezado y los paquetes de controladores, por lo que un recuento literal por tamaño de paquete no es realmente tan exacto, excepto para tener un sentido crudo.

Después de eso, no hay una gran cantidad de paquetes masivos en el grupo de paquetes de Debian que yo sepa.

Me parece que una vez que la partición raíz comienza a crecer lo suficiente como para comenzar a preguntarse cómo deshacerse de los paquetes para reducirla, generalmente es hora de mover / cambiar el tamaño a una partición raíz más grande.

apt-get clean, por supuesto, es lo primero que se debe ejecutar, para deshacerse de todos los archivos .deb almacenados en caché, pero una vez que elimine eso, y todo menos 2 núcleos, si todavía no tiene suficiente espacio, es más práctico para aumentar el tamaño de la partición, ya que las limpiezas, etc. son solo señales de alerta que está ejecutando cerca del espacio de la partición raíz, lo que puede ser un problema real si apt no tiene suficiente espacio en / var para descargar y extraer paquetes para un mejorar. Limpiar mediante acciones de purga sobrantes de los archivos de configuración de los paquetes eliminados no le servirá de nada en términos de recuperar espacio en disco, ya que son pequeños, pero es bueno hacerlo de vez en cuando solo para limpiar cruft, pero no debería No se confunda con recuperar realmente un espacio significativo en el disco.

apt-get auto-remove tampoco está mal, pero tenga en cuenta que a veces es incorrecto que el paquete se elimine, por lo que debe verificar esa lista cuidadosamente antes de dejar que apt elimine las cosas. Técnicamente, es mejor purgar esa lista, de esa manera también se eliminan los archivos de configuración al mismo tiempo, eliminarlos o eliminarlos automáticamente, creo que los dejaré en su lugar.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.