Chapter 13

ガベージコレクション

Profilesにおけるアンインストール相当の操作は、対象のシンボリックリンクが除外された新しいProfileのビルドを行うだけで、パッケージの実体即ちストアオブジェクトを削除しません。また、NixストアはNixが書き込み権限をロックしており、ユーザーから変更ができないようになっています。では一体いつストアオブジェクトは削除されるのでしょうか?

Nixには手動アンインストールが存在しません。その代わり、ガベージコレクションによって不要なストアオブジェクトを自動的に判別し削除します。

Nixストアは、パッケージの依存関係をデータベースで管理しています。ガベージコレクタは、どのProfileのどの世代にもリンクされていないストアオブジェクトを削除します。Nixは完全な依存関係ツリー(Closures)を把握しているので、ガベージコレクションによって依存関係の不整合が生じることはありません。

一定の世代より古いものはProfileごと削除したり、一定日数経過したもののみを削除したりするなど細かい調整が可能です。

https://nixos.org/manual/nix/stable/package-management/garbage-collection