NixのClosure
from Nix Store
あるstore pathから到達可能なstore pathの集合
あるderivationが内部で依存している他のderivationの集合
あるstore pathをnix-buildする際に、closureに含まれるもの全てを含めないとバグる
依存関係が足りなくなるので
「閉包」と書いたほうがイメージしやすいmrsekut.icon
「クロージャ」と聞くと関数的なアレをイメージしてしまう
逆に言えば、あるderivationのclosureが全てあればそのderivationを実行できる
deployする時に使われる
https://nixos.org/manual/nix/unstable/glossary.html
例えば、以下のようなstore pathがあって
code:/nix/store
hoge
piyo1
piyo2
fuga
hogeが内部でpiyo2とfugaを使っているなら、
hogeのclosureは、「hoge, piyo2, fuga」になる感じ
この例は雑なので厳密に正しいかどうかは知らんけど、イメージ的にはこんな感じだと思うmrsekut.icon
例えば、hogeのclosureにhogeを含むかどうかは知らん(用語的に)
$ nix-store -q --tree which man
manのclojureをtree状に表示する
$ nix-copy-closures
$ nix-store --export
参考
Nix Pills 3.6