NixOS is the endgame of distrohopping - Joshua Blais
NixOS is the endgame of distrohopping - Joshua Blais

NixOS is the endgame of distrohopping - The Universe of Joshua Blais

cross-posted from: https://programming.dev/post/36606182
NixOS is the endgame of distrohopping - Joshua Blais
NixOS is the endgame of distrohopping - The Universe of Joshua Blais
cross-posted from: https://programming.dev/post/36606182
@ruffsl I wanted #nixos to be my distro. It really is great... Until you need random things. I won't say anything bad about it, however, it doesn't work for me.
As soon as you veer off the beaten path, things can get really tricky.
For med tech and robotics development, I'm still using Debian via docker because the surrounding ecosystems for those software communities are so tightly integrated with the Debian.
I disagree. I stopped distrohopping 20 years ago (my first distro was Slackware installed from a set of dvd's). Settled on Arch. Everytime I upgrade my PC I reinstall Arch, transfer my /home partition over, install packages and that is it really. I do not see the appeal of sticking everything in a bunch of config files at all.
that's a weird way to spell EndeavourOS.
A strong warning against distrohopping.
It's a slippery slope, to be sure.
I'm also against quick and frequent distro-hopping.
People say that's the way how to learn; i say that's the way not to learn deep knowledge. It's like waking up 7 times in the night, instead getting the much needed deep sleep. Yeah, I could not come up with a better analogy, it's still early in the day (but I got my sleep BTW). Whatever...
Nah. GNU Guix System. Or Debian + Guix.
Nix has more packages but Guix is much more well documented and coherent (anecdotal and subjective). Also nice with scheme instead of yet another DSL.
I haven't dug into Guix yet, so is the config more of a markup and less of Turing complete language? That sounds like it'd be easier to grock or optimize an LSP for.
I have heard that Guix takes a stronger stance with respect to unfree software. I don't think any of the official nix Hydra infrastructures build for unfree packages, but they are packaged and indexed into nixpkgs. Has Guix been difficult at all in that regard, i.e. using proprietary drivers or closed libraries for work or personal hardware?
Yeah, I meant Scheme as you've already figured out.
I would say that nonguix makes nonfree stuff trivial: https://gitlab.com/nonguix/nonguix
However, I do advocate that Guix introduce an official "curated" nonfree repository (like Debian). I believe that would make more good for user freedom and reproducibility. Almost no mainstream hardware works well with the libre kernel.
You probably missed it there, Guix's syntax is the programming language Scheme. It's most definitely Turing-complete.
It's possible that there's a more mature LSP server for Scheme, since it is a programming language used for other things, too...
Closest one is probably opensuse tumbleweed, but still not perfect by any means
I believe Guix System (or all Nix/Guix derivates) is the closest one. Otherwise I would say Yocto (not really a distro), Gentoo and all the container based distos (like openSUSE Micro).
My fedora install is being kinda jank, if I end up reinstalling that might be what I'm trying next.
I recently moved to Aeon from silverboue and it's great so far.
It really is not. It has a very specific purpose, and desktop usage is not it's strong point. It's meant for repeatable builds at scale. Not great for an uncontrolled user experience.
I disagree. I love it for a desktop system . The fact that you can just try a package/app out with nix shell -p pkg and it doesn't mess with your global environment and don't have to bother to uninstall/clean up is very nice. Also combined with direnv/shell.nix it's really nice for setting up different dev environments, no need to globally install your dev tools (of course you can also do this without nixos too). Or the fact I can run a test variant of my setup without being afraid of corruption with nixos-rebuild test and it will never be able to fuck my existing setup..
Of course, configuring everything in a single structure is a bit of work at the beginning. But it's really not that bad (though the documentation could really use some work) . You can just reuse your existing dot files by just including them without converting them to the nix language. And the fact I can now update and configure all my systems from one place and one structure is amazing, without having to ssh in every machine and remember how it's configured.
Now does that mean it's the final distro? Probably not. But would I go back to a non-declaritive setup? Most definitely never. Maybe I'll try out guix sometime, but I personally never liked lisp variants as a language. But who knows what else comes along. But imho declarative is the way to go for any setup, desktop or server.
It doesn't matter, because Nix isn't built for it. That's not it's purpose or what it's best at.
Kickstart some Fedora if you need a similar experience, or use whatever ORM templating any other distro might offer. They all offer a better desktop experience because they are tuned with their packages and experience.
Nix is meant for automated build systems to be binary reproducible. That's it.
People fanning over the declaration language are foolish for not realizing that literally all the big distros have the same experience, BUT are not claiming the same end result.