this post was submitted on 23 Sep 2023
29 points (93.9% liked)
Linux
5218 readers
6 users here now
A community for everything relating to the linux operating system
Also check out !linux_memes@programming.dev
Original icon base courtesy of lewing@isc.tamu.edu and The GIMP
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Interesting.
I have settled with NixOS+home-manager. It got quite a bit better over the last 3 1/2 years.
After learning and understanding all the quirks of NixOS, I've got a super nicely configured system, that just gets better over time, not comparable to a(ny) different distro I know of (they kinda degrade after time IME). I really like the way I can compose all my configuration via functions in modules and reuse relevant stuff on different servers and desktops I use (via flakes), always with the same up-to-date configuration.
Don't get me wrong I really like Nix. But like you said the learning curve is steep. And just learning the basics including flakes for instant setup is not enough. Because all your config files gotta be rewritten which is a lot of work and nix specific knowlege to aqquire. If you went through it I can totally see the benefit.
However for me personally it makes more sense to use tools that have wide adaption, such as OCI images and CI/CD to buid the image. My thought: Using Docker/Containerfiles is way more adapted by the industry so people already know how to use that. Nix on the otherhand has to not only fight against the default way UNIX systems are configured, but also do that with brand new tools.
I agree all distros are at some point breaking it's just the nature of any OS. That's why the nix paradigm or immutable OS paradigm is far superior and the future.
Actually since I just had a similar issue at work. I fought a little bit with the traditional Docker pipeline, and then discovered this: https://mitchellh.com/writing/nix-with-dockerfiles, which not only solved my problem much faster, but is also more efficient, since only the actual dependencies of the package are in there (and it can be really reproducible). So you can actually combine the best pieces of each technologies (Docker - sandboxing/containerizing, Nix - packaging and configuration).
Btw. Nix is rapidly growing (since flakes mostly), so I think a slow shift towards Nix is happening already.
But I agree, migrating traditional dotfiles to Nix+home-manager takes time. I did it incrementally (I used activation scripts to link directly to the old config files, and slowly converted the old config to Nix.