如何在 Nix 本身中获得推导闭包大小。您已经可以使用
nix path-info
(对于 https://github.com/srid/emanote - 请参阅下面的示例)来执行此操作,但我想从 Nix 表达式中获取此值。这可行吗?如果是的话,怎么办?
❯ nix path-info --json -S .#default | jq 'map(select(.closureSize > 0.4e9)) | sort_by(.closureSize) | map([.path, .closureSize])'
[
[
"/nix/store/l3fl1fzxw6nfkbdmcf9ghjnnkl4l7vml-emanote-1.0.1.6",
546010216
]
]
不幸的是,如果不构建推导,这在本地是不可能从 Nix 表达式实现的。
在 Nix 表达式中,人们只知道如何构建事物,而不知道将要构建什么。
您必须列出闭包中的所有派生,获取每个项目的大小,方法是在您的商店中构建它(nix path-info 的作用),或者在适用时通过官方 nixpkgs 构建缓存(Hydra)。