The first obvious answer may be the one you are comfortable with but that may be none for a new computer/ linux user.
The one where those package are available. Or even multiple ones.
With atomic (immutable) distros this question will arise more often as the question of which image becomes more important than which distro to chose.
I use dnf but I could also use apt or pacman. What are the relevant advantages of the package managers? What’s the reason to use apt over dnf? Nix? Simply package availability?
I will simply list a couple of the images[1] I’ve used over time and provide some personal insights (in alphabetical order):
- Alpine; when I’m restricted in bandwidth and/or disk space. FWIW,
apk
is even faster than whatever is found on Arch. - Arch; if I just need a certain package and can’t be bothered to look up if it’s available on any of the others. Yup, the AUR strikes yet again. Furthermore, if I’m troubleshooting and I find myself on the ArchWiki, then in order to prevent edge cases from happening and thus the provided solutions to not work on the non-Arch distrobox; I rely on the Arch distrobox. It doesn’t hurt that
pacman
(or any of the AUR helpers) are blazing fast. However, if I intend to rely on said AUR packages over longer periods of time, then I often do look for an alternative distrobox to grab the package from instead. While the AUR is excellent for the amount of packages it has, the security standards aren’t the best. Thus, if you’re security-conscious, then it’s better to rely on AUR packages sparingly, unless you’re willing to get into the nitty gritty and check how they’re built, how the package is maintained and if its maintainer(s) is reliable. - Bazzite-Arch; my go-to for gaming.
- Fedora; as I’m already on Fedora Atomic, relying on Fedora distroboxes makes the most sense security-wise. Fedora is also known to take security very seriously themselves, so in general this is just very pleasant to rely on for security reasons. The only reason why one should not rely on Fedora for security reasons would be if they’re already on something from openSUSE (like Aeon/Kalpa/Tumbleweed etc). In that case, going for an openSUSE distrobox makes more sense for security. Furthermore, if the package I need is one that’s widely accessible, then I also rely on Fedora distroboxes. Lastly, currently, my development environments are all Fedora distroboxes. I might eventually change these to Wolfi distroboxes or simply rely on Nix, but that’s still WIP for me.
- Ubuntu; I’ve had to rely on these a couple of times to use software that’s known to target Ubuntu. Most recently it was with Matlab IIRC.
- Wolfi; For the security-conscious, this is probably the best choice. Unfortunately, I’ve only experimented with it so far without too much success. Thankfully, the Bluefin project has made some good use out of it. So I’ll try to emulate their ways in the near future.
Notable mention goes out to Davincibox. Unfortunately my laptop doesn’t have a dedicated GPU, so I can’t make use of it. But it’s something I’m keeping my eyes on.
NixOS is not a supported container distro, but I do have Nix installed through The Determinate Nix Installer. It’s somewhat underutilized currently, though 😅.
- The images will be the toolbox ones if available.
Thc for sharing your experience!
It has been my pleasure 😊!
In an immutable setup on Fedora (trying to main Bazzite) is the correct way to use zsh and oh my zsh as my main shell to use rpm-ostree to install it, or should I be using distrobox or Nix/Fleek?
I installed zsh and oh-my-zsh with an Arch container and it works flawlessly.
Try to avoid using ostreeGood question! However I think it’s wise to concentrate on a particular word/phrase before actually answering your query.
In an immutable setup on Fedora (trying to main Bazzite) is the correct way to use zsh and oh my zsh as my main shell
Currently, it’s not always clear if there even is a correct way of installing some of these (more) edge cases. Therefore, I wouldn’t be surprised if you’d see ‘seasoned’ Fedora Atomic users that have all tackled these in very different ways while being satisfied with (not only) their own solutions (but also approve the respective solutions of their peers).
As for your query, I would say that starting to use Fedora Atomic and pointing out correctly some of the more common ways to install software while being aware of the ambiguity that exists with the chosen installation method for this specific piece of software is already very commendable. So I would like to congratulate you on that!
But, you shouldn’t be afraid to stick to what’s easy (aka don’t allow good to be the enemy of perfect). If the extra time required for changing your base system doesn’t bother you at all (which happens automatically in the background anyway), then layering it (thus installing with
rpm-ostree
) is probably the easiest method while protecting you from a lot of possible edge cases you might have to deal with otherwise. Traditionally,zsh
(and other shells) were layered (thus installed withrpm-ostree
) and uBlue itself included (perhaps still does) just commands to change root shell tozsh
,fish
etc. This might have changed in the last few weeks, but I think it should still be a safe bet. FWIW, I have never had any troubles pertaining to myzsh
installation and any of its plugins (might as well link the managed zsh-config I rely on).
- Alpine; when I’m restricted in bandwidth and/or disk space. FWIW,
You can use multiple distrobox images. Pacman has a huge advantage of AUR.
I use Fedora Atomic with Distrobox.
I asked the same question a while ago and decided to settle on Arch as container.
Why?
- Pacman is extremely fast. I used a Fedora-container a while too and it was extremely slow compared to Arch
- Simple syntax, especially with the Arch plugin for zsh.
- Minimalist
- Official packages are (almost) just as secure as from other distros
- I get the newest stuff
- Good documentation
- The AUR. I rarely need to use it (pretty much never), but if I would need to, it’s great I can.
I still rarely use it. I’m leaning more to the casual user side and use Flatpak 99% of the time. But for terminal use, I find the said container, with zsh + plugins great. There are some programs (Nextcloud client for example) that don’t work 100% with Flatpaks, and for that, the Arch packages are actually pretty reliable and work almost every time (via distrobox-export).
I had a few doubts about Arch, and I personally still wouldn’t use it as distro for everyday use, but at least as container, it’s elegant and lovely. I could use Silverblue as unbreakable base and install everything with Arch, and nothing breaks.
Thx for sharing!