Nixos
如何獲得 Nix 派生的大小?
是否可以在建構派生後確定派生的大小?例如,在 之後
nixos-rebuild
,新派生佔用多少空間,不包括由於先前建構而節省的任何儲存空間?
嘗試這個:
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
顯然,派生的傳遞閉包的大小嚴重重疊(共享庫等),因此這些數字總是會超過總空間使用量。不過還是有用的。
這是你想要的?
$ 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