NixOS is only bad when you learn to fly, mostly because not enough docs. But when you are all bruised up, it’s a joy through and through.
I’d rather teach my grandma to install gentoo than ever touch nixOS again.
How about installing nix on Gentoo?
There are people in your life who care about you too much to let you do that to yourself… I assume…
Everything has to be compiled on Gentoo, right? So would the many binary nix packages even work?
Sure, binary packages always worked on Genoo. Binary packages are the result of compiling.
By now you can freely mix and match precompiled binary packages and selfcompiled packages on Gentoo.
As nix is also a source based package manager, you can also just disable the binary caches and have everything compile on machine! I don’t think you would get of the benefits of compiling it for your hardware though due to the sandboxing of the build environment.
For everyone who doesn’t have several different systems to maintain, I find the advantages of nixOS to be marginal. Sure, you can argue about atomicity and all, but honestly I don’t remember ever running into a serious problem with debian either. The huge package repo is nice, but I rarely encounter an app I can’t get through apt, flatpak, or as an appimage.
At the same time, nix also has various downsides. Documentation sucks. There are two main ways to manage the system, they both pretend to be the better one, and it’s super hard to even get started. That’s not an issue with the technology, but just a lack of priority. Guix is much better on that end (but also comes with the same marginal advantages).
On the other hand, debian has a stable community, with proper processes, democratic structures etc.
This is a nice, kind of old presentation from debconf, where people discussed nix and how this could be useful in a debian context as well:
https://www.youtube.com/watch?v=jGrcLEweglg
So, if you FOMO, don’t worry. Debian and other options have this on the radar and have their ways to adapt (even if slowly)
Personally I’ve found the transition to be much more than marginal. Systems are defined not by the state of the machine itself but by the config describing it which is much more transparent and manageable. Non-declarative systems are great if you’re just running small services, are changing and experimenting a lot. Or just don’t can’t if your system goes down or bloats over the year. Declarative systems save you whole lot of management headaches especially if you are working with others, or aren’t constantly reviewing your old work.
Except that things change as well in (or rather “around”) declarative systems, and you have to update your config files as well. That’s because the underlying software changes, and it has nothing to do with whether your system is declarative or not. You just need to put in the work to update your configs at a different point in time.
In nix they don’t, since they lock in files based on the commit hash. You don’t have to update unless you want to and you can always roll back to the previous stable state.
Okay, not really interested in this discussion. Of course, I can also keep running Debian 10 forever
“Not interested in discussion” posts opinion on public form. Wut.
I’m interested in the topic in general, but not in explaining that declarative systems don’t solve the problem of continuously changing software (e.g., for security updates, changing landscape), and the need to update configs that goes along with it. Hope that helps!
It helps the problem by tagging the state of all your random dot files to the same source set. Any that config changes very rarely anyway. Unless you are using super bleeding edge software. Sure you have to change things still but atleast you have a well track set of what you’ve changed how you’ve changed it and what versions it’s all set to. Non-declarative systems mean you still have to do all the updating but now it’s all a much of untracked manual work unless you’re real good at documentation. Hope that helps!
I keep telling myself that one of these days, surely, I’ll eventually leave my comfy Fedora rpm-ostree setup, try out NixOS, and make the most of its super unique package management.
Surely.
I actually just made that exact switch this year. It’s actually pretty fun to try out lots of folks’ shared setups without worry. (Ended up basing my system off this one https://github.com/Frost-Phoenix/nixos-config)
Bad time to try out NixOS due to recent controversy…
Huh?
The entire moderator team just resigned
Why?
Problems between them and the steering committee, there is a post about it on their discourse
Can’t an os not have controversy
FOR FIVE MINUTES?
Nixos has been extremely easy to get working for most stuff. If you stray off the trail at all, it gets complicated. Possible! But complicated for my little brain.
The problem is, no one on Nix is going to stay on the trail. We are all there since we left it long ago.
still weeks ahead of the gentoo user
I had 0 issues with Gentoo.
And it updates in a manner of hours on 3700X (LibreOffice and Firefox are the worst offenders).
Hmmm I was annoyed that my slow internet slowed down my arch update by 6 minutes.
I have very fast internet, so no waiting there.
But fuck LLVM and Clang.
Development seems to be a bit of bite in the ass.
Intellij does have a package but for some reason plugins use often some random binaries and those do not work well with nixos.
Also getting always the right dependencies for the current project was for me difficult to learn.
Embrace the
--impure
For my dev environment I’ve had great success combining home-manager and their integration with
Sure, it doesn’t quite fit the nix philosophy perfectly, but everything is still in my home.nix file and my home directory, and and I can swap tool versions on the fly and direct IntelliJ to their locations pretty easily
Guix!
It was a contender when I switched, but its lack of Secure Boot options unfortunately disqualified it.
I will say Secure Boot using the default keys provides no security benifit