You can diff two closures with nix store diff-closures
or nvd diff
:
$ begin
set -l profiles (fd -t l --exact-depth=1 'system.*link' /nix/var/nix/profiles/)
nvd diff $profiles[-2] $profiles[-1]
end
<<< /nix/var/nix/profiles/system-2373-link
>>> /nix/var/nix/profiles/system-2374-link
Version changes:
[C*] #01 bcache-tools 1.0.7 x2, 1.0.7_fish-completions x2 -> 1.0.7 x2, 1.0.7_fish-completions x3
[C*] #02 coreutils-full 9.0, 9.0_fish-completions, 9.1, 9.1-info, 9.1_fish-completions -> 9.0, 9.0_fish-completions, 9.1, 9.1-info, 9.1_fish-completions x2
[C*] #03 cpio 2.13 x2, 2.13_fish-completions x2 -> 2.13 x2, 2.13_fish-completions x3
[C*] #04 dconf 0.40.0 x2, 0.40.0-lib x4, 0.40.0_fish-completions x2 -> 0.40.0 x2, 0.40.0-lib x4, 0.40.0_fish-completions x3
[C*] #05 diffutils 3.8 x2, 3.8-info, 3.8_fish-completions x2 -> 3.8 x2, 3.8-info, 3.8_fish-completions x3
[C*] #06 dosfstools 4.2 x2, 4.2_fish-completions x2 -> 4.2 x2, 4.2_fish-completions x3
[C.] #07 etc-shells <none> x2 -> <none> x3
[C*] #08 findutils 4.9.0 x2, 4.9.0-info, 4.9.0_fish-completions x2 -> 4.9.0 x2, 4.9.0-info, 4.9.0_fish-completions x3
[C*] #09 fish 3.4.1, 3.4.1_fish-completions, 3.5.0, 3.5.0-doc, 3.5.0_fish-completions -> 3.4.1, 3.4.1_fish-completions, 3.5.0, 3.5.0_fish-completions, 3.5.1, 3.5.1-doc, 3.5.1_fish-completions
[C*] #10 fontconfig 2.13.94, 2.13.94-bin, 2.13.94-dev, 2.13.94-lib, 2.13.94_fish-completions, 2.14.0 x2, 2.14.0-bin x2, 2.14.0-dev, 2.14.0-lib x2, 2.14.0_fish-completions -> 2.13.94, 2.13.94-bin, 2.13.94-dev, 2.13.94-lib, 2.13.94_fish-completions, 2.14.0 x2, 2.14.0-bin x2, 2.14.0-dev, 2.14.0-lib x2, 2.14.0_fish-completions x2
[C*] #11 fuse 2.9.9 x2, 2.9.9_fish-completions x2, 3.10.5, 3.10.5_fish-completions, 3.11.0, 3.11.0_fish-completions -> 2.9.9 x2, 2.9.9_fish-completions x3, 3.10.5, 3.10.5_fish-completions, 3.11.0, 3.11.0_fish-completions x2
[C*] #12 gnugrep 3.7 x4, 3.7-info, 3.7_fish-completions x2 -> 3.7 x4, 3.7-info, 3.7_fish-completions x3
[C*] #13 gnused 4.8 x3, 4.8-info, 4.8_fish-completions x2 -> 4.8 x3, 4.8-info, 4.8_fish-completions x3
[C*] #14 gnutar 1.34 x4, 1.34-info, 1.34_fish-completions x2 -> 1.34 x4, 1.34-info, 1.34_fish-completions x3
[C*] #15 iceauth 1.0.8 x2, 1.0.8_fish-completions x2 -> 1.0.8 x2, 1.0.8_fish-completions x3
[C*] #16 iproute2 5.17.0, 5.17.0_fish-completions, 5.18.0, 5.18.0_fish-completions -> 5.17.0, 5.17.0_fish-completions, 5.18.0, 5.18.0_fish-completions x2
[C*] #17 iputils 20211215 x2, 20211215_fish-completions x2 -> 20211215 x2, 20211215_fish-completions x3
[C*] #18 kexec-tools 2.0.23 x4, 2.0.23_fish-completions x2 -> 2.0.23 x4, 2.0.23_fish-completions x3
[C*] #19 less 600 x2, 600_fish-completions x2 -> 600 x2, 600_fish-completions x3
[C*] #20 libressl 3.4.3, 3.4.3-nc, 3.4.3_fish-completions, 3.5.3, 3.5.3-man, 3.5.3-nc, 3.5.3_fish-completions -> 3.4.3, 3.4.3-nc, 3.4.3_fish-completions, 3.5.3, 3.5.3-man, 3.5.3-nc, 3.5.3_fish-completions x2
[C*] #21 man-db 2.10.2 x2, 2.10.2-doc, 2.10.2_fish-completions x2 -> 2.10.2 x2, 2.10.2-doc, 2.10.2_fish-completions x3
[C*] #22 mdadm 4.1 x2, 4.1_fish-completions x2 -> 4.1 x2, 4.1_fish-completions x3
[C*] #23 mkpasswd 5.5.12 x2, 5.5.12_fish-completions x2 -> 5.5.12 x2, 5.5.12_fish-completions x3
[C*] #24 net-tools 2.10 x2, 2.10_fish-completions x2 -> 2.10 x2, 2.10_fish-completions x3
[U.] #25 nixos-system-desktop 22.11.20220720.0d67d56 -> 22.11.20220720.28b9471
[C*] #26 openssh 9.0p1 x2, 9.0p1_fish-completions x2 -> 9.0p1 x2, 9.0p1_fish-completions x3
[C*] #27 patch 2.7.6 x2, 2.7.6_fish-completions x2 -> 2.7.6 x2, 2.7.6_fish-completions x3
[C*] #28 polkit 0.120 x3, 0.120-bin x2, 0.120_fish-completions x2, 1.pam x2 -> 0.120 x3, 0.120-bin x2, 0.120_fish-completions x3, 1.pam x2
[C*] #29 procps 3.3.16 x2, 3.3.16_fish-completions x2 -> 3.3.16 x2, 3.3.16_fish-completions x3
[C*] #30 rtkit 0.13 x2, 0.13_fish-completions x2 -> 0.13 x2, 0.13_fish-completions x3
[C*] #31 setxkbmap 1.3.2 x2, 1.3.2_fish-completions x2 -> 1.3.2 x2, 1.3.2_fish-completions x3
[C*] #32 shared-mime-info 2.2, 2.2_fish-completions -> 2.2, 2.2_fish-completions x2
[C*] #33 which 2.21 x2, 2.21_fish-completions x2 -> 2.21 x2, 2.21_fish-completions x3
[C*] #34 xauth 1.1 x2, 1.1_fish-completions x2 -> 1.1 x2, 1.1_fish-completions x3
[C*] #35 xdg-utils-unstable 2020-10-21 x2, 2020-10-21_fish-completions x2 -> 2020-10-21 x2, 2020-10-21_fish-completions x3
[C*] #36 xinput 1.6.3 x2, 1.6.3_fish-completions x2 -> 1.6.3 x2, 1.6.3_fish-completions x3
[C*] #37 xlsclients 1.1.4 x2, 1.1.4_fish-completions x2 -> 1.1.4 x2, 1.1.4_fish-completions x3
[C*] #38 xorg-server 1.20.14 x2, 1.20.14_fish-completions x2 -> 1.20.14 x2, 1.20.14_fish-completions x3
[C*] #39 xprop 1.2.5 x2, 1.2.5_fish-completions x2 -> 1.2.5 x2, 1.2.5_fish-completions x3
[C*] #40 xrandr 1.5.1 x2, 1.5.1_fish-completions x2 -> 1.5.1 x2, 1.5.1_fish-completions x3
[C*] #41 xrdb 1.2.1 x2, 1.2.1_fish-completions x2 -> 1.2.1 x2, 1.2.1_fish-completions x3
[C*] #42 xset 1.2.4 x2, 1.2.4_fish-completions x2 -> 1.2.4 x2, 1.2.4_fish-completions x3
[C*] #43 xsetroot 1.1.2 x2, 1.1.2_fish-completions x2 -> 1.1.2 x2, 1.1.2_fish-completions x3
[C*] #44 xterm 372 x2, 372_fish-completions x2 -> 372 x2, 372_fish-completions x3
Closure size: 7943 -> 7988 (167 paths added, 122 paths removed, delta +45).
To see what will change for an update before activating it you can diff /run/current-system
and result
(from nixos-rebuild build
).