What functionality does the reproducibility of nixOS serve to a user (like me) with only one desktop. Like I won't be installing the same system multiple times, I understand the 'predictable-ness' of a declarative system. But are there some other advantages?
I find it useful to not have to remember how I set things up when I last touched it months ago. You can do really ricey tweaks if you want to, without worrying about breaking the whole system, or having to set it all up again if you have to reinstall.
I work in Devops, so being able to track my system in git is insanely useful for maintainability.
The fact that NixOS has fearless bleeding edge is just a plus; Being able to install the latest packages before Arch even gets them, without worrying if something will break.
Maybe your drive(s) fail and you want to reinstall.
Then you already have a setup with all your software and config files installed. Just reinstall NixOS and re-apply your configuration (or build your own Install ISO ).
And if you ever get a new laptop/desktop/VM/VPS you can do the same.
Don’t forget to take backups, regardless of your setup tho.
The reproducibility also leads to some surprise features, like being able to wipe your entire system on every boot. Since NixOS always puts the necessary files in the correct place, this is perfectly fine. If you then add some mechanism to persist specific data across reboots (a separate partition, or the Impermanence module), you will remove all kinda of randomly accumulated files on every boot.
This means I have very small backups, because I have three kinds of data: stuff that is wiped on every boot, stuff that is persisted but not backed up (/nix/store, all kinds of caches) and stuff that is persisted and backed up (documents, repositories, media).
None of my OS’s files are in the backups, which makes of them a lot smaller than my previous arch install.
I installed some broken Nvidia drivers and lost all video out. I rebooted the PC, selected the previous generation, and voila… working PC again. On Arch I’d be debugging it for hours.
NixOS can be managed with Git and you can bring your old environment to a new PC without reloading a full snapshot. Config and data are kept separate when you use Nix to handle the config
Not a developer myself; what benefits does that give me? I know it's repeatable on different hardware or equal across machines, but wat else would be a win to pick Nix? Immutable so its a pretty static experience?
For most use-cases, yes. I wouldn't want to use any distro without simple rollback anymore. This boils down to Fedora Atomic, NixOS, or btrfs + any distro.
I think the only time I've broken my boot was when I was messing with the boot settings and set something wrong with luks decryption. I just booted the previous config from the boot list and fixed it, no problem.
I'm in the middle of nix syntax (nixtax?) and good lord it is quite the learning curve. It has been fun hammering my system back to where it was with Arch though and I'm looking forward to the magical powers that will come with mastering the language.
Nothing but respect for the community, y'all are something else.
Yup, the official nixos repo is about the same size as the AUR, so you get all the same packages, and they're usually more up to date.
The only drawbacks for availability is that writing your own packages is harder, and there are some quirks if you're trying to use appimages. But overall, really good for daily driving, and it's really easy to request new packages on the nixpkgs Github if anything is missing.
A few days ago I started using NixOS as my daily driver. I am yet to understand how to use home-manager and the nix language but right now I'm good with the main configuration.nix and fleek.
Yeah, I didn't touch home-manager for a while, it's not really that important to start using. It's nice for managing dot files, but the main configuration.nix is much more powerful.