As the title implies, should I do it? I love Arch so far, and I can fix most issues that pop out. However, I sometimes wish to start fresh without too much hassle, but I get a feeling NixOS isn't as mature as Arch.
Have any of you used both, and if so, what do you miss from Arch? What are you grateful for in NixOS?
NixOS has been around almost as long as Arch (20 vs 21 years)
you can install the Nix package manager on other distros as an intermediate step to start to give you the feel of things – ie. use Arch to manage your system packages and use Nix to manage your user & GUI packages
While I agree it's nice to have access to nixpkgs' packages in other OSs (I've never did this so take the following with a grain of salt), it is my opinion that you're missing out on the biggest features if you don't fully opt for the nix approach.
I wouldn't reduce the nix tools to a package manager. It's a set to interact with the nix language, which primarily is a language to build a system from. You have the biggest advantage when you know that your system only consists of components built from your set of instructions (of course this pulls in a lot of stuff from nixpkgs) because that brings your system closer to reproducibility. It also makes it more consistent.
I've also been distro-hopping, but settled on NixOS. I find it very clean, you know exactly where your (system-level) configuration files are (...and could even manage user-level config files using home-manager). There is a stable branch, which is, well, stable. And even if it wasn't, you can rollback the system at any point, which is trivial (just select a different generation during boot).
One of the biggest advantages for me is universal reproducible working environments. Using Nix+direnv, I can lock all tools (make, gcc, JupyterLab, Python, Julia) that I'm using in a project to specific versions (and upgrade/rollback). I can install programs/libraries in a nix shell and they will be removed on the next garbage collection. Upgrades are extremely safe: I once had a problem with RAM that corrupted a lot of my files during an upgrade. Nix can detect and repair this.
Downside is that Nix doesn't follow FHS, so some programs need a little help, for example by Nix' steam-run.
FHS is the filesystem hierarchy standard than Linux and most Unix/Unix-like systems use. The Wikipedia entry has a good simple explanation. The full standard can be found here. NixOS does not use this standard, as it's not compatible with many features Nix offers.
NixOS is as mature as arch, I'd say, but because of its nature it has issues here and there, but rarely so.
That said, the learning curve for nix/nixos is very very very steep, so good luck learning. It took me a while for me to use it nicely, and even then, I'm nothing more than a beginner. Even so, I'm quite comfortable and pretty much can't use any other linux distro.
That's true for the configuration.nix. I still cannot fully wrap my head around using Nix Flakes for managing my nixos configuration, home manager and overlaying or creating packages. My setup so far works, but I still don't feel like I fully understand it.
Documentation is crap, but has been getting much better recently. Companies are also starting to use NixOS in production and are making contributions. The low friction ARM development process becomes more relevant every day.
I wish I knew. I learned of it and started playing with it last year, with me using it full time since Feb of 2023, with a couple of hopping and then coming back to NixOS
Why was my comment deleted? I certainly didn't delete it and it was a perfectly legitimate question I think asking about why NixOS is only getting popular now
I switched to Nixos after reading a lot about it and eventually switched back to arch because I didn't like how hacky everything felt. On the surface it seems really clean because of the central configuration file and the reproducible nature of the whole thing, but in the rare case something doesn't go as planned, it's hard to know how to do anything about it. Basically everything that would have been a configuration issue for you to fix, is now a bug. Also, I found no easy way to install software that isn't in nixpkgs (which is rare, but happens).
You can always download appimages and run them or run unpatched binaries with steam-run. Worst case is packaging them yourself, but once you geht the hang of it, that also goes relatively fast.
I would recommend you give it a shot. Nix is not conventional and you will find that the ways you’re used to doing things are arch are done differently on NixOS. It’s not a matter of maturity. It’s a matter of use case. I use it on two systems, but not my main one because there are some things that I don’t want to deal with that NixOS imposes. I encourage you to give it a try and see what you like about it.
I haven't used NixOS but it does sound interesting. From what I gather all you need is your configuration.nix file to rebuild the entire system the same as it was before. I think for sure the biggest thing I would miss is the AUR.
That is good to know, but if you are missing something it seems you need to package it yourself. I'm sure I could do that, just not sure I really want to be doing it.
In practice it takes a long time to build a config for absolutely everything in your system at least from my experience of it
There are a few things I've not bothered to put in the config like wallpaper, gtk theme, macros (though I do want to put macros in declaratively because it feels like missing a limb not having them)
System setup wise you can completely wipe the machine and have it back up to where you left it in 20 mins or so
Your reason of "wish to start fresh" doesn't sound compelling.
Arch is stable, and works great. Biggest draw for NixOS is packages. I don't think NixOS has anything to offer in packages that I can't get in Arch. I'll not advocate switching to an experimental distro with who knows what other headache, just because I can run Debian or rpm packages. Not for a daily driver.
I think the biggest draw for Nix is configuration.nix and being able to centralize your system configuration. I personally find the AUR to be better in terms of software, especially from GitHub.
I agree that people shouldn't jump blind into Nix without first getting to grips with it though a VM or something, tho. The learning curve is quite steep.
I just made a post about my musing on NixOS so maybe read that? (here) Basically after the main learning curve it's pretty easy to use.
I'm getting the hang of their package manager as well, so if need be I can make my own (Like I would for Arch. The AUR scares me from a security standpoint).
My main advice is to not go against the curve. If the manual says that NixOS does it that way, do it that way, because going against the grain is like going through a cheese grater in this OS.
Unlike Arch where you can do things as you want, in Nix you do things using Nix. You can almost always accomplish what you want, but it's gotta be done the NixOS way. This is actually a benefit rather than a problem once you get used to it, because it starts becoming second nature, and it is extremely powerful.
I think you might like to try it. Maybe to get a taste for it try the nix package manager first. Right now I'm kind of struggling on whether or not NixOS is the one for me or Gnu Guix. Both are pretty awesome.
I've never been able to daily drive Nix, or for that matter stand using it in a VM. I've always hated every aspect about it. I currently use Arch, but for stability reasons am switching back to (probably, might end up going for something debian based) Fedora on my desktop. The overall structure of Nix is just... It's not meant for a normal person to daily drive, it's designed for replicability. You don't interact with it the way you would a normal OS.
That being said, a lot of people around me love Nix, and do daily drive it. I don't know how they can stand it, but they do.
I've never been able to daily drive Nix, or for that matter stand using it in a VM. I've always hated every aspect about it. I currently use Arch, but for stability reasons am switching back to (probably, might end up going for something debian based) Fedora on my desktop.