By default, Fedora Atomic envisions the following in regards to installing packages/software:
- First, try the Flatpak.
- If that doesn’t work, use Toolbx(/Distrobox).
- If all else fails, resort to
rpm-ostree
.
This works pretty fine, but isn’t perfect:
- Flatpak has become pretty good for software with a GUI. However, while it can do CLI, it’s underutilized.
- Toolbx/Distrobox has its merits, but not everyone enjoys consuming CLI through containers.
- Besides the fact that installing all your CLI tools through
rpm-ostree
will negatively impact how fast you can update your system, it also requires you to (soft-)reboot before you can access the newly installed package (unless you enjoy living on the edge with--apply-live
). This can be pretty cumbersome, especially if you’re in flow.
Thus, the situation around CLI on Fedora Atomic became a sore to the eyes. Within the community, there were multiple attempts to tackle this problem:
- Nix; For some time, this was the perfect solution. Unfortunately, in its current iteration, installing Nix on Fedora Atomic requires SELinux’ enforcing mode to be turned off. As turning enforcing mode off is unacceptable for uBlue’s maintainers, this was eventually dismissed.
- Better tooling around Toolbx/Distrobox; There have been made some efforts in this regard, perhaps most notably Ptyxis. But, we’re not there yet. Though, some are hopeful of what podmansh will bring to the table.
- Homebrew; It behaves as any other package manager used for installing packages from the repository on any Linux distro out there. Except, in this case, it’s exclusively utilized for CLI. Currently, it’s simply the most straightforward in use. You just have to teach people to replace their
apt
/dnf
/pacman
withflatpak
(for GUI) andbrew
(for CLI). Furthermore, it comes with a big and healthy repository. Finally, it utilizes technologies related to the ones found on Fedora Atomic. systemd-sysext
; This has only very recently been added to systemd. I wouldn’t be surprised if this will play a prominent role going forward. Though, I’m unsure if CLI will benefit most of it.
I’m not the one you asked your question, but I think I understood what they meant.
First of all, technically MicroOS is the non-desktop version of openSUSE’s take on an atomic/immutable distro. The desktop variants are referred to as Aeon (for GNOME) and Kalpa (for KDE).
Secondly, while Aeon/Kalpa definitely is to openSUSE what Silverblue/Kinoite is to Fedora, there’s a clear difference in vision and maturity.
Vision
Fedora Atomic is a very ambitious project; everything points toward it being Fedora’s take on NixOS. But, unlike NixOS, it couldn’t start from scratch nor did they intend to. Instead, it’s the process of evolving their existing products into something special. As such, it has been over two years since Fedora has even explicitly stated that they intend for Fedora Atomic to become the default eventually (without saying anything about sunsetting the old). While, AFAIK, openSUSE has yet to make similar statements regarding Aeon/Kalpa.
Maturity
Everything points towards Fedora Atomic being more mature than openSUSE MicroOS; work on the project has started earlier, Fedora Atomic is almost done with their transition (from image-based) to OCI while I don’t recall openSUSE mention anything regarding their transition (from ‘snapshots’) to image-based since they mentioned it briefly last year. Furthermore, Bazzite (based on Fedora Atomic) has become the face of Gaming Linux while openSUSE’ MicroOS fails to deliver on anything but Aeon. Which, to be fair, is absolutely fine. But not everyone is fan of GNOME.
So, use Tumbleweed if:
Use Aeon if:
Use Fedora Atomic if:
Finally, regarding containers specifically; let’s say you want to install package X.
sudo zypper install X
and you’re done with it.flatpak install X
. If there’s no Flatpak of it, you install it within a container that you access through Distrobox. Within the container, use the package manager corresponding to the container. Technically, while inside the container, the environment is very similar to Tumbleweed. So, say you got a Tumbleweed container, then you can continue usingsudo zypper install X
.rpm-ostree install X
; this is very close to how installing packages work on Tumbleweed. And, you can continue using both Flatpak and Distrobox; like how it’s done on Aeon. Note that Tumbleweed also allows access to Flatpak and Distrobox. So, Aeon is most restricted as it can’t install packages onto the base system. Btw, Fedora Atomic accomplishes this through layers that can also be peeled off later on (through uninstalling for example). With this, the base system actually isn’t affected, but the end user doesn’t notice it.