A short while ago, I got into a heated discussion about how many of the well known problems with Linux have been resolved through the use of Immutability (for example, Fedora Silverblue), containerization (Toolbx and Distrobox) and other separation methods such as Flatpak, AppImage, and Snaps. I stated that through the use of these tools, dependency hell, system instabilities, and problems where there are 600+ distros and developers don't want to create binaries for everyone are for the most part solved for the end user. I felt that after that heated conversation (that in the end got locked), I needed to back up what I'm saying and further explain things for those who might be interested.
I will be using Fedora Silverblue as my OS example, but I want everyone to be aware that there are many immutable/atomic Linux OSes available these days, and even without using an immutable Linux distro, most of the things that I will mention can be applied to any Linux distro, and still greatly reduce any chances of ever experiencing a problem with dependency hell, while at the same time greatly increasing system stability.
So, let's start with why these things that I mentioned in the previous paragraph are the future of Linux, and how do they benefit a Linux user? Here are some links that do a great job of explaining this (again, by using Fedora Silverblue as an example for this explanation):
https://fedoraproject.org/atomic-desktops/silverblue/
https://www.maketecheasier.com/fedora-s ... -of-linux/
https://www.dvlv.co.uk/pages/a-beginner ... rblue.html
https://www.makeuseof.com/fedora-silver ... rkstation/
https://fedoramagazine.org/what-is-silverblue/
https://docs.fedoraproject.org/en-US/fedora-silverblue/
Here are some unvarnished user opinions about using this new Linux technology:
https://www.reddit.com/r/Fedora/comment ... use_linux/
-----------------------------------------
So, with that brief intro, I want to explain how things work and some of the reasons why this fixes the problems that were mentioned above. You start with a clean install of your distro (whatever it is). Install Distrobox and Flatpak. Install as many of the apps that you can from Flatpak. Everything else, use Distrobox. Try to install the least you can onto your main distro--this keeps it as clean and untouched as possible, so that there are few to no apps that can conflict on the main OS. If you must install a file onto your main distro, only install files from your distro's main repository.
If you do this, your main OS will remain clean and untouched, while allowing you to still use all of the apps you want on your system as if they were all installed onto your main OS. In reality, however, Distrobox and Flatpak will be separating all of the apps installed into them from your main OS. Distrobox allows you to install any distro as a container. So, you can have a base OS of Debian Stable, but on top of that you can run a container of Arch and a container of Fedora (or whatever OSes you want, and as many as you want), and use the apps from those distros within those containers as if they were installed into your main OS. There is no longer any software from any Linux distribution that you cannot install on your main Linux distro!![Smile :)]()
Distrobox is an easy to use front end to the containerization tools, most commonly Podman. Here is a quick explanation of what containerization is and how it works:
https://www.ridge.co/blog/what-are-containers/
https://www.freecodecamp.org/news/a-beg ... a9e3e119b/
Here's a quick explanation of specifically what Distrobox is:
https://itsfoss.com/distrobox/
Summary:
So, in essence, through the use of an immutable Linux distro, and tools like distrobox and flatpak (as well as toolbx, appimage, snaps, etc), the problems dependency hell and accessing software from other Linux distros are a thing of the past.
I'll give a personal example: Once version 40 of Fedora Silverblue is released, I'm going to set up my system, utilizing the following:
* Fedora Silverblue provides a solid OS base with an immutable/atomic OS core that can't be overwritten, thus protecting my core OS from being damaged or from having conflicts.
* I will use Flatpak installs to provide individually containerized graphic applications that can't touch the main OS.
* I will use toolbx (a simplified tool like Distrobox that comes with Fedora) for any Fedora Silverblue specific software that I will use with my main OS--it won't be able to touch my main OS, but it will start from an icon and run as if it is from the main OS itself.
* I will use Distrobox to run any other distros that I want. These distros will all use the kernel of my main Linux distro, and there is almost no performance loss. These separate containers can contain as many distros as I want. In my case, since most everything comes as a .DEB, I'll probably run Ubuntu as my main Distrobox containerized OS. I can use the Ubuntu package manager and push apps directly to the container. I can export the icon of these apps to my main OS and start them from in the container as if I were starting them from my main OS. Flatpak applications also put an icon on your desktop and fully integrate with the main OS and look and feel as if they are part of the main OS. To the user, there is no visible difference, even though all of this separation and containerization is going on. The user won't notice a difference.
* I will install my audio software, including my DAW, and my native linux plugins. I will also install WINE and yabridge into that same container, and run whatever Windows plugins I want to run as well from there.
* Since my laptop is a 2-in-1, I can treat my laptop as a tablet as well. I will install Waydroid into my main system as well. Waydroid is a containerized, full version of Android that gives me full access to all android applications from my laptop, and integrates the icons just like Flatpak and Distrobox does. Android applications will sit as icons on my desktop right alongside my other applications.
* If there is something that I can not get to work with WINE, I can use KVM/QEMU to virtualize a full version of Windows or MacOS, or anything else I want, that can be run from within my Linux system. The main drawback here is that latency and performance isn't as fast as using an API compatibility layer like WINE.
* I'll probably use game machine emulators run from Flatpak to play games on, or I will use Steam.
I hope this serves as a evidence-based explanation of what I have spoken about before in these forums, and it helps users to better understand the future of Linux.
Best wishes!!![Smile :)]()
I will be using Fedora Silverblue as my OS example, but I want everyone to be aware that there are many immutable/atomic Linux OSes available these days, and even without using an immutable Linux distro, most of the things that I will mention can be applied to any Linux distro, and still greatly reduce any chances of ever experiencing a problem with dependency hell, while at the same time greatly increasing system stability.
So, let's start with why these things that I mentioned in the previous paragraph are the future of Linux, and how do they benefit a Linux user? Here are some links that do a great job of explaining this (again, by using Fedora Silverblue as an example for this explanation):
https://fedoraproject.org/atomic-desktops/silverblue/
https://www.maketecheasier.com/fedora-s ... -of-linux/
https://www.dvlv.co.uk/pages/a-beginner ... rblue.html
https://www.makeuseof.com/fedora-silver ... rkstation/
https://fedoramagazine.org/what-is-silverblue/
https://docs.fedoraproject.org/en-US/fedora-silverblue/
Here are some unvarnished user opinions about using this new Linux technology:
https://www.reddit.com/r/Fedora/comment ... use_linux/
-----------------------------------------
So, with that brief intro, I want to explain how things work and some of the reasons why this fixes the problems that were mentioned above. You start with a clean install of your distro (whatever it is). Install Distrobox and Flatpak. Install as many of the apps that you can from Flatpak. Everything else, use Distrobox. Try to install the least you can onto your main distro--this keeps it as clean and untouched as possible, so that there are few to no apps that can conflict on the main OS. If you must install a file onto your main distro, only install files from your distro's main repository.
If you do this, your main OS will remain clean and untouched, while allowing you to still use all of the apps you want on your system as if they were all installed onto your main OS. In reality, however, Distrobox and Flatpak will be separating all of the apps installed into them from your main OS. Distrobox allows you to install any distro as a container. So, you can have a base OS of Debian Stable, but on top of that you can run a container of Arch and a container of Fedora (or whatever OSes you want, and as many as you want), and use the apps from those distros within those containers as if they were installed into your main OS. There is no longer any software from any Linux distribution that you cannot install on your main Linux distro!

Distrobox is an easy to use front end to the containerization tools, most commonly Podman. Here is a quick explanation of what containerization is and how it works:
https://www.ridge.co/blog/what-are-containers/
https://www.freecodecamp.org/news/a-beg ... a9e3e119b/
Here's a quick explanation of specifically what Distrobox is:
https://itsfoss.com/distrobox/
Summary:
So, in essence, through the use of an immutable Linux distro, and tools like distrobox and flatpak (as well as toolbx, appimage, snaps, etc), the problems dependency hell and accessing software from other Linux distros are a thing of the past.
I'll give a personal example: Once version 40 of Fedora Silverblue is released, I'm going to set up my system, utilizing the following:
* Fedora Silverblue provides a solid OS base with an immutable/atomic OS core that can't be overwritten, thus protecting my core OS from being damaged or from having conflicts.
* I will use Flatpak installs to provide individually containerized graphic applications that can't touch the main OS.
* I will use toolbx (a simplified tool like Distrobox that comes with Fedora) for any Fedora Silverblue specific software that I will use with my main OS--it won't be able to touch my main OS, but it will start from an icon and run as if it is from the main OS itself.
* I will use Distrobox to run any other distros that I want. These distros will all use the kernel of my main Linux distro, and there is almost no performance loss. These separate containers can contain as many distros as I want. In my case, since most everything comes as a .DEB, I'll probably run Ubuntu as my main Distrobox containerized OS. I can use the Ubuntu package manager and push apps directly to the container. I can export the icon of these apps to my main OS and start them from in the container as if I were starting them from my main OS. Flatpak applications also put an icon on your desktop and fully integrate with the main OS and look and feel as if they are part of the main OS. To the user, there is no visible difference, even though all of this separation and containerization is going on. The user won't notice a difference.
* I will install my audio software, including my DAW, and my native linux plugins. I will also install WINE and yabridge into that same container, and run whatever Windows plugins I want to run as well from there.
* Since my laptop is a 2-in-1, I can treat my laptop as a tablet as well. I will install Waydroid into my main system as well. Waydroid is a containerized, full version of Android that gives me full access to all android applications from my laptop, and integrates the icons just like Flatpak and Distrobox does. Android applications will sit as icons on my desktop right alongside my other applications.
* If there is something that I can not get to work with WINE, I can use KVM/QEMU to virtualize a full version of Windows or MacOS, or anything else I want, that can be run from within my Linux system. The main drawback here is that latency and performance isn't as fast as using an API compatibility layer like WINE.
* I'll probably use game machine emulators run from Flatpak to play games on, or I will use Steam.
I hope this serves as a evidence-based explanation of what I have spoken about before in these forums, and it helps users to better understand the future of Linux.
Best wishes!!

Statistics: Posted by audiojunkie — Fri Mar 22, 2024 12:19 am