I'm really enjoying Distrobox. With it, I've been able to develop on my Steam Deck and use it as my primary and only device.<p>The Steam Deck default OS (Steam OS 3) is a heavily locked down variant of Arch with only a couple of writable directories. With Distrobox, I can run an Ubuntu environment from one of those directories, ensuring that when I install SDKs or tools, they're being installed to a writable area of the OS but require no config to change what they think is intended install location.
Should include project name in title (distrobox). This is really a game changer for immutable distros. I use Fedora Kinoite and basically everything I use is in an Arch distrobox or flatpak. Best part is, you can just throw a box in the trash and create a new one with only stuff you need. Distrobox-assemble will simplify it further.
From the first line of the README:<p>"Simply put it's a fancy wrapper around podman or docker to create and start containers highly integrated with the hosts"
Love it! I've been evangelizing Distrobox in my lab. We do robotics and often have to interface with machines running outdated distros or outdated software. Distrobox has made it trivial to spin up containers running arbitrary versions of whatever we need, while keeping our host machines up to date. In fact, today I'm running hardware demos where I'm controlling an arm by dispatching commands through an ancient version of ROS that I set up with Distrobox.
I've been using this on top of both Ububtu and Fedora Silver blue, to run a Fedora toolbox, works nicely.
There is also a host-exec script that allows to spawn commands outside the container while inside. E.g. it is not possible to run 'podman' nested, but with host-exec can still run containers while inside distrobox (distrobox isn't used for isolation, but for the ability to run a mutable OS of your choice).<p>There are a small number of programs, usually those that need root (such as 'cpupower') which also need to be run "outside".
See also blendOS, where you can also install Android and web apps.<p><a href="https://www.linux-magazine.com/Online/News/Arch-Based-blendOS-Features-Cool-Trick" rel="nofollow">https://www.linux-magazine.com/Online/News/Arch-Based-blendO...</a>
Love distrobox. Use it on my daily driver. If you are running an Ubuntu LTS / Debian stable / PopOS as your main operating system (because you want stability), but want to run bleeding-edge gui applications in debian testing (or even unstable) in an isolated container, you can. Running GUI applications in Linux containers is usually non-trivial to set-up, but distrobox makes it painless. Install with apt, export to the host operating system with 'distrobox-export --app blah'.
Interesting. I always used LXD. It supported many distros too. You can quickly spin up an LXD container that matches the desired cloud instance type. I can create EC2-like t2.micro instance on local Ubuntu/Debian and see how my app would behave on a cloud instance locally on my workstation. LXD also supports GUI apps and NVIDIA GPU acceleration. I will test this one.
For testing i prefer systemd-nspawn containers with mkosi. A neat tool for running your other fav. distro in a terminal. Works like a charm and integrates nicely in your system. Eg. logs and systemd services or CI testing.<p>- <a href="https://github.com/systemd/mkosi">https://github.com/systemd/mkosi</a><p>- man:systemd-nspawn(1)<p>- man:machinectl(1)
How is it different from Toolbox? (<a href="https://github.com/containers/toolbox">https://github.com/containers/toolbox</a>)
I wonder how Distrobox compares to nix shell.<p>If I understand correctly, Distrobox makes it convenient to launch (and destroy) lightweight VMs on demand, while nix shell makes it convenient to drop into a shell with some package installed. The documentation around nix has unfortunately been unapproachable in my experience.<p>Of course, Flatpaks+Podman will be a learning curve, but I'm eager to try Silverblue+Distrobox on one of my computers.
Distrobox is awesome! No need to fight with my Ubuntu based distro for new packages anymore. I just install everything in my arch box now and it works nicely.<p>Stability of Ubuntu with the power of pacman, definitely a great tool!
Does this support a full Ubuntu Desktop? At my job we test a lot of projects for which we require a load of (GUI) apps. Until now I've installed these in a VM and then reset the VM after the project so my host OS doesn't get cluttered.<p>If Distrobox can give me a full desktop Ubuntu in a container in stead of a VM that would be very welcome.<p>Thanks for the post, I'm diving in!
If you want to actually use multiple distributions at once integrated tightly into each other (like using Ubuntu with AUR packages) I highly recommend <a href="https://bedrocklinux.org/" rel="nofollow">https://bedrocklinux.org/</a>. It uses some chroot and symbolic link magic to share files across filesystems.
Who are the target audience?<p>For non-admin task, I don't think there are much different between distro.<p>For admin task, this won't go too far...
For me the biggest selling point is being able to install things from official or more trustworthy sources than I can otherwise. For example Signal does not show any official way to run the desktop app on Fedora, but I trust the Archlinux community repo so I can just install it on an Arch distrobox environment and add a launcher for it to my bin. This beats the unofficial Flatpak in my opinion.
It's what allowed me to make the jump to NixOS without having to give up much - every userspace program that isn't packaged up or has quirks along with anything gaming related where I consistently want the newest and greatest runs inside an Arch distrobox container. Can highly recommend!
This is an excellent puzzle piece for testing your software in different environments. What I'm looking for in addition to something like Distrobox is away to easily test with older kernel versions. Does anyone know a tool that makes this easy, easier than juggling VM's manually?
This is a good idea. Are there any down sides to using it? I feel like a proper implementation of this could reduce a lot of noise in the development experience. Some part of me wonders if you can brick your box with it or if there are less than obvious performance costs?
The experimental Sandboxed Mode sounds interesting, there should be a dedicated fork focused on sandbox mode replicating QubesOS with containers rather than VMs.
I use LXD. I can spawn any distro I want. I also use GUI apps this way (including video/audio eg firefox). I also use chezmoi for different HOME environments I want to have inside my LXD containers.
How does it handle EOL distros like Debian 7 for which packages are not available anymore ?<p>I need to compile the most recent version possible of rsync (or one with some specific zip support) for Debian 7 but I can't install the build tools in Debian 7 in docker :/. What I got so far:<p><pre><code> $ docker run -it debian/eol:wheezy /bin/dash
# apt-get update
E: Method http has died unexpectedly!
E: Sub-process http received a segmentation fault.</code></pre>
All wrong.<p>The only true Unix way is to use Slackware stable as base and build your own software from source. Bonus points for writing that source yourself.<p>/s