154 sats \ 1 reply \ @freetx 23 Feb \ on: Best to go all in or try NixOS package manager NixOS
As a disclaimer: I think NixOS is cool. I'm happy it exist. I like reading about it, and I'm happy its users like it.
Why I don't use it: Its not because of its ideas, in fact I support mostly all of its ideas. However, I find that I can achieve more or less the same outcome using a more traditional distro (Fedora Silverblue) with a more generalized configuration management utility (Ansible).
By using Ansible, you don't get the same pure reproducible build that NixOS offers, but you get 99% of it. Ansible is idempotent, so much like Nix you are declaring the state you want your OS to be in (this package installed, this service enabled, this custom config edited, etc). In practice this yields an single file that you can reproduce your current OS from....its "self-documenting" like Nix in that regard.
The benefit is that Ansible knowledge scales. You can use it to manage any OS (including Windows), so its a more useful skill to gain.
Silverblue is based around rpm-ostree and the filesystem is atomic-based. The theory of operations is you should only install absolutely critical OS-level packages and everything else should be relegated to Flatpaks, Containers, and Toolboxes (Distroboxes).
Note on the last point. Toolboxes / Distroboxes (I prefer Distroboxes) are effectively like super-chroots / LXC's. But that they automagically integrate with your local environment. So I can have a Alma9, Debian 11, Ubuntu, and Fedora 35 "container environments" all running simultaneously - each hosting different apps or environments. All of these environments can access my local machine including Wayland, hardware, etc.
Finally, by running most traditional apps as Flatpaks, I get the security benefits of sandboxes plus the freedom upgrade to always latest version without the risk of incompatibilities at OS level
Thank you for this detailed comment and explanation of Silverblue. You are right about Ansible. Giving me some good food for through. I think I need to try both operating systems. I know a bit of Ansible and it would be useful at work as we use it. I actually work at Red Hat lol.
reply