I've been curious about NixOS for quite some time. Reading about it I couldn't see how the config sharing capabilities, setup, or rollabck would be better than Arch and sharing the list of installed packages, using downgrade or chroot.
So I decided to run NixOS in a VM and I'm still confused. An advantage I can see for NixOS is its better use of cores and parallel processing for packages install.
It's clear that I'm missing something so please help me understand what it is.
Edit: Thank you to everyone in this great community! It's always so nice to have a constructive and sane discussion.
After reading so many comments, they all confirm what I've read before and I may realize that my real problem is already having a stable system and no need for the great NixOS options that are very neat but would not benefit my specific and simplistic needs.
That being said I can't refrain myself from being curious and will continue testing NixOS.
The need for only 2 config files is the top of the iceberg but hiding more complex configuration to rely on. Not that I really have too much spare time but I do enjoy learning and tweaking NixOS. With its current development state, things are changing a lot so it can keep me busy for months. That's probably what I was mostly looking for: another toy to play with.
Along my journey I will learn a lot about NixOS and may find a feature that will motivate my switch to it. Thanks again for all your precious feedback!
I'll also take this opportunity to share the best help I've found so far to start with NixOS: https://github.com/MatthiasBenaets/nixos-config And his 3 hours (!) video: https://m.youtube.com/watch?v=AGVXJ-TIv3Y
Just wait until you mess up something like DNS or delete every text editor and you'll be grateful for rollbacks.
Can you elaborate? I messed up DNS when I started with Arch and it was easy to recover from that. For text editing, I'm using neovim and can go back with undotree. Of course, if I delete my file and remove it from the trash it's too late. Can you recover deleted files with NixOS?
That's not what rollbacks are for.
On NixOS, to change most configs, you need to rebuild.
To rebuild, you need internet.
If you mess up DNS, you need to rebuild to gain internet.
But you need internet to rebuild, so you can't.
That's when rollbacks are useful
Got it. So you can rollback without Internet access. I get that point and Arch can also do that with pacman -U. Again I feel like I'm just stupid and am missing something. Like I said I genuinely try to figure out what it is. NixOS would be the only distro I could consider switching to and that's why I'm currently testing it.
They do very different things even if the outcome is the same. You are not rollingback your system by downgrading each package. You are statefully changing your filesystem. Rollbacks in Nix and Guix are internet free, atomic and reproducible because they amount to changing the target of a single symlink
One issue with rollbacks Arch has is that there's basically only up to three valid configurations available at any time. These are your current system configuration (oldest state), upstream repositories (newest) and your local database copy (somewhere in-between, though all three states can be identical, e.g. straight after Syuing). By definition, you can't convert your system configuration back to an older one because it's the oldest one of the three already. What you can do is mix your current oldest configuration with packages from the cache, older or newer doesn't actually matter. But you're not getting back the old state really, you're creating a new one that's different from Arch's repository.
A configuration on NixOS includes all exact package versions and their exact configurations. No exceptions.
If you actually need these guarantees is a different question. I used Arch for 15 years and never had significant issues. I switched to NixOS instantly after trying it on an old notebook and immediately recognized that the whole approach suits me so much better that I switched almost all machines over by now.
Very nice explanation. I also recognize this point for NixOS.After reading so many comments, they all confirm what I've read before and I may realize that my real problem is already having a stable system which means not being in need for some "advanced" recovery options. That being said, I'm still curious and will continue testing NixOS.
Not that I really have too much spare time but I do enjoy learning and tweaking NixOS. With its current development state, things are changing a lot so it can keep me busy for months. That's probably what I was mostly looking for: another toy to play with. Will see if I actually switch to NixOS at some point. Thanks again for your feedback.