Hier soir, en travaillant sur Ansel  sous VS Code , j’ai eu le bonheur de voir mon disque dur saturé à 100 %. Lorsque ça arrive, les fonctions les plus basiques du système cessent de fonctionner (navigateur de fichier, bureau KDE/Plasma), etc. Il faut donc redémarrer en console et régler le souci.

C’est d’autant plus rageant que je passe mon temps à faire de la place sur ce disque dur, à coup de 10 Go, et que le problème revient toutes les semaines, toujours pendant l’utilisation de VS Code. En cause : l’absence de nettoyage des fichiers en cache, et des logiciels qui ne vérifient pas l’espace restant sur le disque avant d’écrire leur cache.

Le cache des logiciels est un système d’enregistrement des fichiers intermédiaires et/ou temporaires qui demandent du calcul. Au lieu de les recalculer en permanence, ce qui consomme de l’énergie et ralentit le système, on les sauvegarde temporairement pour les récupérer quand on en a besoin. Le cache peut donc être supprimé sans trop de problème. Le vrai problème est que pratiquement aucun logiciel n’a de garbage collection (ramassage des ordures), c’est à dire de système nettoyant le cache des fichiers obsolètes. On empile. Linux n’est clairement pas meilleur que Windows ici.1

La commande pour lister les fichiers du répertoire personnel par ordre de taille sur le disque est :

1du -h --max-depth=1 | sort -h

En application de la règle du 80/20 (loi de Pareto ), il suffit donc de se concentrer sur les 2 à 5 dossiers les plus lourds, et d’investiguer leur contenu un par un, à la recherche de fichiers obsolètes et de résidus de configuration d’applications désinstallées.

Après nettoyage, j’obtiens:

 1...
 2321M    ./.npm
 3498M    ./Apps
 4727M    ./.vscode
 5850M    ./.var
 6870M    ./Vidéos
 71,7G    ./.local
 81,9G    ./Dropbox
 92,2G    ./.cache
104,6G    ./Musique
116,3G    ./Cartes
129,0G    ./.thunderbird
1311G     ./.config
1416G     ./Images
1560G     ./Documents
16115G    .

Les répertoires coupables étaient .config, .local, et .cache :

  • 10 Go de packages Python associés à des anciennes versions (2.7 à 3.10), installés avec pip, dans .local/lib/.
  • 5 Go de config et de cache Firefox, que je n’utilise plus depuis 2 ans,
  • 3 Go de config et de cache Chrome, que j’ai utilisé 2 fois pour débugger un site,
  • autour de 15 Go de cache VS Code et plugins : j’ai découvert que chaque plugin peut enregistrer son cache, notamment les assistants de programmation par intelligence artificielle (IntelliSense) et le cache des symboles.
  • plusieurs Go de base de données d’indexation de fichiers (Akonadi , Baloo  et autres cochonneries que je n’utilise pas) et de cache de fichiers média,
  • plusieurs Go de kernels OpenCL et shaders OpenGL précompilés, associés à chaque version (présente et antérieure) de driver Nvidia et Intel.

Bref, 30 Go de nettoyés à la fin de l’opération… Jusqu’à la prochaine fois.


  1.  Techniquement, ce n’est ni la faute de Linux ni la faute de Windows, car le cache est généré par les applications. Mais Linux est censé être l’héritier de la philosophie Unix, caractérisée par son minimalisme, et force est de constater que cette culture s’est perdue. ↩︎