web-dev-qa-db-fra.com

Quels logiciels installés utilisent le plus d'espace disque sur Debian?

L'espace disque sur ma partition racine est faible, je souhaite donc supprimer certaines applications du système. Comment savoir quels packages logiciels utilisent le plus d'espace disque? Est-il possible de voir cela à partir de aptitude?

Je connais les analyseurs d'espace disque génériques comme df ou baobab, mais j'ai besoin de solutions pour les applications installées.

89
Mirzhan Irkegulov

Le plus simple est d'exécuter wajig large. Le package doit être un apt-install-un moyen.

Voici deux liens pour d'autres façons de le faire:

N'oubliez pas non plus que la taille installée n'est qu'une partie de l'espace occupé par les packages. La version compressée est probablement toujours dans le cache, et cela prend aussi de la place. Vous pouvez supprimer ceux avec apt-get clean.

60
killermist

La façon la plus simple (sans installer de packages supplémentaires) est:

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

qui affiche les paquets par ordre de taille, le plus grand paquet en dernier.

Malheureusement, sur au moins certains systèmes, cette liste inclut des packages qui ont été supprimés mais non purgés. Tous ces packages peuvent être purgés en exécutant:

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

Ou si vous ne souhaitez pas purger les packages désinstallés, vous pouvez utiliser cette variante pour filtrer les packages qui ne sont pas à l'état "installé" dans la liste:

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

Puisque vous voulez see which [installed] software packages use the most disk space[,] from aptitude ... bien sûr, vous pouvez utiliser aptitude! via son interface CLI ou son caractère {interactif, TUI, non-CLI}. Voyons d'abord la CLI, puis la TUI. Quoi qu'il en soit, il vous suffit de connaître le

  • options de ligne de commande à utiliser. Le texte suivant utilise des options longues (pour faciliter la recherche de documentation), mais bien sûr, des options courtes sont également disponibles.
  • argument de ligne de commande à utiliser
  • chaîne de format de sortie à utiliser

La ligne de commande la plus simple pour montrer quels logiciels installés utilisent le plus d'espace disque est probablement

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

décomposons donc cela:

  • --sort est l'ordre de tri des packages et ~installsize spécifie une politique de tri des packages .
  • installsize signifie 'trier sur la taille installée (estimée)', et la précédente ~ signifie tri décroissant (car la valeur par défaut pour toutes les politiques de tri est ascendante).
  • --display-format modifie le <you guessed :->. chaîne de format'%p %I' indique à aptitude de sortir le nom du package, puis la taille installée.
  • '~i' indique à aptitude de rechercher uniquement les packages installés.
  • ... et, à moins que vous n'ayez très quelques paquets installés (mon poste de travail Debian un peu générique en a plus de 2400), vous voulez diriger vers head ou less ou un fichier, ou peut-être simplement wc -l pour voir combien de lignes aptitude retournera.

Vous voudrez peut-être aussi

  1. spécifiez la largeur de ligne (en caractères) pour aptitude à utiliser lors de l'affichage, avec --width <your desired integer value/>. aptitude sera par défaut ce qu'il pense être la largeur de votre terminal, mais parfois il devine mal, et parfois vous voulez écrire dans un fichier, etc.
  2. afficher plus d'informations dans votre chaîne de format ou modifier la largeur des champs. Par exemple, ma chaîne de formatage amélioré '%30p %I %r %60d' affiche

    • %30p: nom du package dans la largeur du champ = 30 caractères
    • %I: taille d'installation estimée
    • %r: 'reverse depend count': nombre approximatif d'autres packages installés qui dépendent de ce package
    • %60d: brève description du paquet dans la largeur du champ = 60 caractères

Notez que si vous ne voyez pas de modifications dans votre champ de sortie, vous devrez probablement définir --width.

... et vous pouvez également faire ce genre de chose dans le {interactive, TUI} aptitude. Par exemple, pour définir la préférence de format d'affichage,

  • cliquez ou accédez à Options-> Préférence
  • faites défiler jusqu'à Le format d'affichage des vues de package
  • ajouter %I à la valeur actuelle dans la position souhaitée

Pour limiter la recherche aux packages installés dans le aptitude interactif,

  • presse l (minuscule L)
  • entrer ~i dans la boîte de dialogue

Pour trier la taille installée dans le aptitude interactif,

  • presse Shift-S (majuscule S)
  • entrez installsize dans la boîte de dialogue

Références:

23
Braiam

Dans le cas où vous ne souhaitez pas installer wajig. J'imagine que tout le monde a installé des goodies debian:

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

Tout d'abord, utilisez un outil comme baobab (Sudo apt-get install baobab) pour vous montrer cet espace est utilisé:

enter image description here

Cela vous donnera un bel aperçu graphique et vous aidera à affiner ce qui occupe votre espace. Vous pouvez également obtenir ces informations sur la ligne de commande en utilisant du:

$ Sudo du -ch /

Passez ceci par sort (en supposant GNU sort, ce qui devrait être le cas dans Debian) pour trier par taille de répertoire:

$ Sudo du -ch / | sort -h

À l'étape suivante, vous pouvez voir combien d'espace un package particulier utilise avec cette commande:

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

Sur mon système, par exemple, la suppression de tous les packages texlive libérera 1 502 Mo:

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

Enfin, vous pouvez obtenir ces informations pour tous les packages installés avec cette commande:

$ 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

Vous pouvez utiliser le package wajig et la commande

wajig large

L'aide explique ce que cela fait.

wajig large -h

usage: wajig large [-h]

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

Voir aussi page projet .

3
Faheem Mitha

pour ajouter à d'autres réponses, si vous aimez la ligne de commande, vous pouvez utiliser le bon vieux 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

Vous pouvez probablement libérer de l'espace en utilisant 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

Enfin, vous pouvez probablement vous débarrasser des icônes et des polices qui peuvent parfois prendre beaucoup de place. Voir les détails sur ce site

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

(exemples extraits de ownyourbits)

3
nachoparker

En ajoutant quelques outils supplémentaires à la liste, j'ai toujours utilisé debfoster et deborphan sur mes systèmes. Ils sont plus utiles pour rechercher les anciennes dépendances qui traînent après les mises à niveau.

apt-get autoremove est génial, mais n'obtient pas tout et puisqu'il suit les repères d'installation, il ne sait pas toujours ce que vous souhaitez conserver. En utilisant apt-mark vous permet de le diriger dans une certaine mesure, cependant.

Vérifiez également: https://wiki.debian.org/ReduceDebian

2
XTL

Bien qu'il s'agisse d'une belle collection d'outils, à laquelle j'ajouterais le KDE/QT Filelight, qui est similaire à d'autres outils d'utilisation de l'espace disque gui, ce n'est pas la réponse littérale au titre du sujet.

Si vous prenez la question de ce fil à la lettre, c'est-à-dire quels sont les plus gros packages de votre système, en règle générale, ce sont:

La suite de packages libreoffice, qui n'est pas un package unique, mais elle est vraiment grande.

Je pense que le noyau Linux et les packages d'en-tête associés viennent en second lieu, et si vous avez plusieurs noyaux installés, que la plupart des systèmes ont tendance à avoir, chacun est autour, je pense que l'espace disque de 135 Mo, grossièrement, augmente chaque année, mais c'est à peu près aussi gros . Si vous utilisez des pilotes vidéo non gratuits, il y aura également les packages/fichiers de pilotes associés. Notez que comme avec libreoffice, chaque noyau peut en fait être composé de 2 ou 3 packages, les packages image, header et driver, donc un littéral par nombre de tailles de package n'est pas vraiment précis, sauf pour avoir une idée grossière.

Après cela, je ne connais pas un grand nombre de paquets massifs dans le pool de paquets de Debian.

Je trouve qu'une fois que la partition racine commence à devenir suffisamment grande pour que vous vous demandiez comment vous débarrasser des packages pour la réduire, il est généralement temps de déplacer/redimensionner vers une partition racine plus grande.

apt-get clean est bien sûr la première chose à exécuter, pour se débarrasser de tous les fichiers .deb mis en cache, mais une fois que vous supprimez cela, et tout sauf dire 2 noyaux, si vous êtes toujours coincé avec pas assez de place, c'est plus pratique pour augmenter la taille de la partition car les nettoyages, etc. ne sont que des drapeaux rouges que vous exécutez près de l'espace de partition racine, ce qui peut être un vrai problème si apt n'a pas assez de place dans/var pour télécharger et extraire les paquets pour un améliorer. Le nettoyage par des actions de purge des fichiers de configuration restants des packages supprimés ne vous sera d'aucune utilité en termes de récupération d'espace disque car ils sont minuscules, mais il est agréable de le faire de temps en temps juste pour nettoyer les fichiers corrompus, mais cela ne devrait pas ne pas être confondu avec la récupération effective de tout espace disque significatif.

apt-get auto-remove n'est pas mauvais non plus, mais sachez qu'il est parfois faux que le paquet soit supprimé, vous devez donc vérifier attentivement cette liste avant de laisser apt supprimer le contenu. Techniquement, il est préférable de purger cette liste, de cette façon, vous vous débarrasserez également des fichiers de configuration en même temps, supprimez ou supprimez automatiquement, je pense, les laisser en place.

0
Lizardx