So I’ve been really interested in immutable OS’s since Silverblue, kept jumping off and on again as I hit what I thought were brick walls. I was just not approaching them properly.
I’ve been using Bluefin for work for the last 6 months and started making distrobox containers for projects. One thing I always ended up with was a load of mess with pip or NPM, so the idea I can just jump into a container for that specific project was really appealing.
But it never occurred to me, I can do this for everything, I know this is something that has been done before, but I’ve just stumbled on it. I made a distrobox container using boxbuddy that used the arch-bazzite-gnome image, called it arch-gaming. This has given me a containerised gaming setup that runs like arch native. I can just chuck all my gaming stuff through that and box buddy auto exports the icons into the app menu, so the GUI side of things is sorted. As it’s bazzite the nvidia drivers and steam are all ready to go I installed lutris that was it.
The added bonus of bluefin is that I don’t need rpm-ostree for anything, languages are handled by brew, apps with flatpak, and now the aur for anything niche or apps I want to use in a more traditional setting.
I now have a portable, reproducible system that should be pretty robust.
You’ve got to do some manual config. I know about it but don’t use it. You can redirect home folders with the container in the distrobox create flags. I think the better option is to use the user/groups/SELinux context in addition to the container as this will show up in ownership and is more easy to trace. One of my main problems is how packages have Python installation requirements that by default try to break pip out of any containerized context and create their own venv setup. It totally screws up the whole distrobox container setup and separation from the base system.