ceci à été écrit en mars 2024, si vous êtes loin dans le futur vérifiez quand même si ce qu’est ici est toujours vrai.
https://nixos.org/manual/nix/stable/package-management/garbage-collection
En tout cas pour citer la documentation de Nix, nix ne supprime pas vraiment les choses(packages), c’est juste une histoire de symlink, grâce à mes amis symlink je peux rollback facilement… mais comme l’espace de stockage de nos ordinateurs est souvent une ressource limitée, il est possible voir désirable de supprimer des packages non utilisés.
Une façon simple est de supprimer les generations qui datent de plus de X jours:
nix-env --delete-generations 14d
dans l’exemple nous supprimons les generations datées de plus de 14 jours du profil actuel. Si cela ne fonctionne pas comme attendu, vérifiez le profil.
Tant qu’une génération pointe sur un package le garbage collector ne va pas le supprimer, donc maintenant que nous avons supprimé des générations nous pouvons executer le garbage collector:
nix-store --gc
Le manuel nous introduit même nix-collect-garbage
, qui peut nous aider à supprimer les anciennes générations de tous les profils qui se trouvent dans /nix/var/nix/profiles … mais nos generations nommées crées avec nix-rebuild -p
qui se trovuent dans /nix/var/nix/profiles/system-profiles
ne sont pas suprimmées, donc nous devons le ssupprimer nous mêmes si nous souhaitons nous libérer des anciennes générations qui ont été nommées.