nh os switch --update --ask
Is this some declarative joke I am too imperative to understand?
Info:
nixos-rebuild switch
= build the new system configuration (from/etc/nixos/configuration.nix
or flakes) and activate it immediately without reboot.- It builds the new system in
/nix/store
. - Updates the GRUB/systemd-boot entries.
- Switches to the new configuration right away (systemd units, services, kernel params if possible, etc.).
- Leaves the old generations available for rollback (
nixos-rebuild switch --rollback
).
So: “switch” means build + activate now
I never use nixos, but I just got intrusive thought to make that command get invoked automatically every time the config file is modified.
My most intrusive Linux thought is to symlink
vi
toemacs
(or vice versa).or nano to $EDITOR, if you like copy-pasting commands from tutorials.
I will find you, and I will break your fingers.
It doesn’t matter what text editor it is, the only correct answer is to alias them all to
ed
I had a Nix partition on a beater laptop and it reminded me of Gentoo back in the day. Every update took at least 20 minutes.
I’m only two days into Nixos, but I don’t think that would be a problem. I am at 14 generations of my system already, and it asks me every boot which generation I want to start. It’s trivial to scroll down and pick an earlier (working) version.
One thing that might be nice would be if that menu indicated how many times each generation had been booted and used for more than 10 min, so I could tell which ones were “real” versions and which were transitional.
It helps to run the garbage collector and clean out the Nix store. Once you get a stable version that works, clear your nix store.
See this built in helper script
If you’re new you might have a bunch of stuff in the store from trying out things. You can also delete objects older than a certain period, which is nice.
I’m not even to the point of trying out alternative software, I’m just trying to get the right configs so I can use the dang thing!
I tried to get screenshots working, and now the system is completely unresponsive, mouse never moves etc. Ok, back to previous version. Between here and working, I’m sure I’ll go through dozens more versions! I’m trying to only make small changes every time.
I saw the garbage collection for old stuff, but I’m still setting things up for the first time especially since I’m trying Wayland and Hyprland for the first time. Every other generation works, probably! I’m really enjoying the process, except that I need this computer and the downtime is a problem.
Do you know a way to delete either all generations except the current, or maybe the current ly booted one and the one previous to it? (Not the latest one explicitly as I keep breaking things)
I don’t have the command at hand but you can name versions.
Ooh that’s handy.
NIXOS_LABEL=“changed-some-settings” nixos-rebuild switch
Also, since you’re already 14 versions deep you should probably implement automatic “garbage collection”.
Will do. I’m worried about deleting the one good version while I’m still building the system.
Enjoy :)
- It builds the new system in
Sudo nixos-rebuild switch —flake .#geoff
–impure
--upgrade