As great as Linux is, some aspects of the platform can drive away potential users due to making things too convoluted. One such example is app support, because Linux-based operating systems (or distros) aren't all created equal. Some, like Debian and Ubuntu, can install DEB packages and use a package manager called APT. Fedora and it derivatives typically run RPM packages and use DNF as the primary package manager. And then Arch relies on its package manager (pacman) to install essentially all of its apps.

Platforms like Flatpak and portable AppImage packages make cross-platform apps easier, but there are some things you just need to install with a package manager, and no Linux distro can support all of them. Well, not without Distrobox, that is.

This tool lets you run apps for any Linux distro inside any other distro, so your Debian apps work in Arch, your Arch apps work in Fedora, and your Fedora apps work in Ubuntu. It's an amazing tool to have for multiple reasons, and it comes highly recommended.

What is Distrobox?

Lightweight Linux containers

Distrobox is a terminal-based tool for containerization, meaning it can create containers for other Linux distributions inside your operating system. Essentially, it's like running a different OS inside your system in an isolated environment that doesn't make any changes to your main machine. In that sense, it's similar to a virtual machine, but a container is a much more lightweight tool that can run these apps with less overhead, and thus, better performance overall.

You can choose the backend for running your containers, too. Distrobox supports Docker, Podman, and Lilipod for running your Linux containers, so you can choose whatever suits your needs and preferences the best. Because containers share the same kernel as the host, it also helps reduce the overhead that comes with virtualization, and the containers can be much lighter than a full VM.

While Distrobox is used entirely in the terminal, you can use an app like DistroShelf to manage your Distrobox containers with a nice GUI that makes things a lot easier. I certainly prefer doing it this way, as it works well and does everything you'd expect.

Using Distrobox and DistroShelf

Create containers, install apps, and more

To make things easier and more manageable, I used Distrobox and DistroShelf together on my PC, and this made things very easy. You can create any number of new boxes for just about any distro you can think of. On my Pop! OS machine, which is based on Ubuntu, I started by creating a Fedora box. DistroShelf lets you see things like the uptime and resource usage of a given box easily, so you can keep an eye on your system's performance.

When you create a box with DistroShelf, you can give it a name, and it will automatically select an OS image to use for the container that matches the chosen name, though you can change it to just about anything you want. There are tons of options available, including older versions of a given distro, so you can easily set up the release you want.

To interact with the operating system inside your container, you still have to use the terminal (which DistroShelf also makes easily accessible), and once you're in the terminal for a given box, it's just as if you were using that operating system natively. You can install apps easily using the package manager for that distro, and use your installed apps as if they were running natively on the PC. Even apps that have a GUI will open on your desktop, as if they were native apps.

What's more, with DistroShelf, you can easily "export" apps from any of your containers to make them accessible directly in your host system's desktop, all without making any changes to your system files. It all works seamlessly and makes your PC capable of running just about anything. Some operating systems, like Vanilla OS 2, even make containerization the main appeal of the platform, advertising themselves as a way to run every Linux app in one OS.

Containers can change everything

Isolated, performant, and versatile

Containerization isn't just a great feature for running apps from other distros, though it does that very well. While it is uncommon for apps to be exclusive to a given distro, having that flexibility is always great.

But the true selling point of this idea lies in the flexibility that it affords you, not just in terms of compatibility, but the ability to use all of these apps and environments completely isolated from each other, as well as offering a way to run apps in immutable distros that are much more limited in the options they have for installing apps. If you have a Steam Deck with Steam OS, installing apps with a typical package manager is not recommended, because any packages layered on top of the immutable operating system open the door for compatibility issues with later updates. So, you can use Distrobox to install any Linux app you might need without causing any problems for your system as a whole. Many people are able to use a Steam Deck as a development machine thanks to this capability, when it wouldn't otherwise be advisable to do it due to the immutable OS.

And even if you don't have an immutable OS, Distrobox's isolation means you can create development environments for almost any use case without having to worry about compatibility and dependency problems. One of the big challenges of being a developer is needing multiple versions of a specific toolkit or framework for different projects, and the possibility that these different versions start resulting in conflicts and what's often called "dependency hell". By using containers, you can create the exact environment you need to develop a specific piece of software and not have it be affected by any other containers you may have set up with different dependencies and packages.

Even if you're not a developer, this kind of thing can be helpful just to test new apps. Having a layer of isolation form the system means it's easy to try one app, see if it's worth keeping, and discard it entirely without affecting the performance of your PC or running into any security risks.

Distrobox is an incredible tool

Whether it's because you want to use apps designed for other distros, you have an immutable operating system, or you're a developer who needs multiple environments to make sure your projects all run without issues, Distrobox is a fantastic solution that enables you to install and run all kinds of packages regardless of what your host operating system is, and without the common drawbacks of using a virtual machine.

This is also a great example of something that's just not possible in the same way on Windows. Aside from using the Windows Subsystem for Linux, Windows itself doesn't really offer an easy way to create containers of other Windows instances for testing aside from using a virtual machine, with the overhead that comes with such an approach. Distrobox makes any Linux PC much more flexible and versatile, and trying it comes with essentially no risks, so I recommend giving it a shot. Most distros support installing Distrobox, and many immutable operating systems already include it out of the box.