[Nix-dev] confusing rollback / generation system

Stefan Huchler stefan.huchler at mail.de
Thu May 18 20:32:45 CEST 2017


So because I had problems with nixos 17.03 (kodi) for now I wanted to
rollback to a older version and get rid of the newer generations on my
system, so that I can update my 16.10 profile with other configurations.

Doing something like that:

nix-env -G 198 -p /nix/var/nix/profiles/system
nix-env --delete-generations 199 200... -p /nix/var/nix/profiles/system
nix-collect-garbage

The first question is why do I need to specify a path and use a nix tool
when I want to make nixos system rollback?  searching this path always is not
very funny.

Why cant I use some sort of nixos-env --delete-generations without a
path? And why cant I use like with nix-channel not 198 as parameter to
rollback instead of using switch + delete manually?

then I wanted to change back the channel so that upgrades I do with
nixos-rebuild would use 16.10 packages.

I thought using --add 16.10-url and then --update would be the way to
go, but I see there is also a rollback option. So lets try it:

/ssh:root at PC: $ nix-env --list-generations
  18   2017-05-12 04:04:24   
  19   2017-05-12 17:09:26   (current)
/ssh:root at PC: $ nix-channel --rollback
switching from generation 19 to 18
/ssh:root at PC: $ nix-env --list-generations
  18   2017-05-12 04:04:24   
  19   2017-05-12 17:09:26   (current)
/ssh:root at PC: $ nix-channel --list
nixos https://nixos.org/channels/nixos-17.03

It seems to me that it did nothing.

Why is there a second rollback feature? When would be a good time to use
it, and a new add+update be not doing the same?

Stefan



More information about the nix-dev mailing list