Title is quite self-explanatory, reason I wonder is because every now and then I think to myself “maybe distro X is good, maybe I should try it at some point”, but then I think a bit more and realise it kind of doesn’t make a difference - the only thing I feel kinda matters is rolling vs non-rolling release patterns.
My guiding principles when choosing distro are that I run arch on my desktop because it’s what I’m used to (and AUR is nice to have), and Debian on servers because some people said it’s good and I the non-rolling release gives me peace of mind that I don’t have to update very often. But I could switch both of these out and I really don’t think it would make a difference at all.
NixOS configuration is done entirely through code, so all of your packages are in a list (although that list can be spread across multiple files; it’s a bit to explain)
I’ve found it can be easier to manage what you have installed, since you can just look at that list and go “oh, why do I still have xyz installed, idek what that does anymore”
I appreciate the way things are configured a lot, but I would not recommend it unless you really like coding and you have time to tinker. It’s not too hard to get simple config setup, but I spiraled down a deep rabbit hole really quickly.
EDIT: If my comment for some reason persuaded you to use NixOS, I recommend you get a basic config setup before installing it. I’d also recommend you look at how annoying it can be to run dynamically-linked applications (i.e. you download a random executable off the Internet and try to run it, or you try to run something you downloaded with npm)
While it sounds sexy and attractive… Not sure the amount of time needed to configure your NixOS is worthwhile. (Except if you have time to spare and want that learning experience !)
Just put everyhting In your personal notes and you have a similar “feature”?
The configuration of nix is not the time consuming part, most of the time it’s faster than other distro if you are a developer. The time consuming part is having an issue with a niche package, the only doc you have is the code and random github issue from 3 years ago that don’t mirror your config, and the nix evaluation doesn’t tell you which part of the config is the problem.
Perhaps, but when I accidentally nuked my system by dd’ing to one of the hard drives, being able to install the exact same system back onto it by pointing the installer to my git repository was an excellent experience.
Is the restoration method mentioned here really only achievable via nixos? How can you be so confident that you are truly reobtaining an “exact same system”?
Nixos consistently intrigues me because of what it seems to be accomplishing but I can never dive in because there seems to also be many warnings about the investment required and the potential for other more complicated and really nuanced drawbacks to arise.
Give it to me straight–is it offering a new approach of stability with the emphasis on reproducibility? If I’m a gentoo enjoyer hardset in my ways, what could I stand to gain in the nixos/guix realm?
Your personal files e.g. ~/Documents are not recreated, you’ll still need backups of those.
caveats are you’ve got to use:
But all this can be written in the one flake, so yes
nixos-install --flake <GIT URL>#<HOSTNAME>
Is sufficient for me to rebuild my desktop, laptop or server from the same repository.I’ve never used Gentoo, and I’m sure there are other methods of achieving the same level of reproducibility but I don’t know what they are.
Nixos can be as modifiable as Gentoo with the caveat being it’s a massive pain in the ass to do some things. I have a flake for making aarch64-musl systems which has been an endeavour, and… It works? I have a running system that works on 2 different SoCs. I do have to compile everything quite often though.
There are efforts to recreate Nixos without systemd, but that’s a huge effort; because it’s very “infrastructure as code”, you have to change a lot of code where editing a build script would’ve sufficed on arch/Gentoo.
As for nix vs guix, guix was described to me as “if you only ever want to write in scheme”, whereas nix feels much more like a means to an end with practical compromises spattered throughout.
Yeah can’t argue against that, never tried NixOS !