Nixos

如何獲得 Nix 派生的大小?

  • October 10, 2021

是否可以在建構派生後確定派生的大小?例如,在 之後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

https://nixos.org/manual/nix/stable/

引用自:https://unix.stackexchange.com/questions/665718