构建推导后是否可以计算出推导的大小?例如,在 后nixos-rebuild
,新的推导占用了多少空间,排除由于以前的构建而节省的任何存储空间?
答案1
你可能想要nix path-info
(例如,对于 emacs):
$ nix-build -A emacs '<nixpkgs>'
$ nix path-info -Sh ./result
/nix/store/3l9lddwxz1mayaxvw8iy50ygzzfh1s1b-emacs-27.2 470.4M
来自尼克斯发行说明:
nix path-info
显示有关存储路径的信息,替换nix-store -q
.一个有用的功能是选项--closure-size
(-S
)。例如,以下命令显示当前 NixOS 系统闭包中每个路径的闭包大小,按大小排序:nix path-info -rS /run/current-system | sort -nk2
另请参阅Nix 安装手册。
答案2
尝试这个:
nix-store -q --requisites `nix-build --no-out-link '<nixpkgs>' -A vim` | sort -uf | xargs du -ch | tail -1
我也喜欢看:
for p in /nix/var/nix/profiles/system* /nix/var/nix/profiles/per-user/$USER/profile*
do
echo -n $p" ⇒ "
nix-store -q --requisites $p | sort -uf | xargs du -ch | tail -1
done
显然,派生的传递闭包的大小严重重叠(共享库等),因此这些数字总是会增加到超过总空间使用量。不过还是有用的。