Silverblue project goals

Hi,

Could someone from the project team give us the idea about the project goals please ?

My current understanding is that:

Fedora Silverblue is:

  • Using rpm-ostree to provide immutability of the CORE operating system
  • Allowing users to layer number of packages using rpm-ostree for things that don’t yet or never will work in toolbx
  • Toolbx is the default recommended method of installing terminal programs
  • Flatpak is the default recommended method of installing GUI apps
  • Toolbx will eventually replace default shell on Silverblue
  • People should try to use toolbx for most of the stuff and layering using rpm-ostree should be secondary method of getting programs into the system or used to install CORE packages mainly.

Hello @jaydoubleu ,
Toobx is a ‘Pet’ container, (actually it is an app that uses podman to create and enter them) it is not a shell, although a shell is normally part of it. It is only useful to install “stuff” inside of that particular container, not as part of the host system (what your referring to as the CORE of the operating system). Although you can run containerized apps as part of your system operation as podman and systemd work well together.
The desire for and use of flatpaks is born from the often system breaking results of installing a software package that pulls in dependencies at time of install, that you didn’t want on your system, such as conflicting libraries versions for instance. Also, application developers are forever battling release version mismatches with their products. The flatpak approach removes this problem mostly, by providing runtimes that are packaged with certain must have bits for all app’s, then packaging apps that target those specific runtimes, and include the rest of the necessary bits to run, and do it inside of a sandboxed environment.
People should use Fedora Linux Silverblue as best they deem fit. No one use case fit’s all, nor should we expect it to. Rpm-ostree was created and specifically used to afford the ability to layer packages as required, but still capitalize on the atomic nature of updates and track those layered items too. Enjoy the benefits of being able to simply rollback to the previous boot if the latest one is problematic.

I see. So if I would decide not to use flatpak or toolbox and mainly just layer all of the packages. Am I risking compromising the system stability by doing so?

I layered almost everything at first, and still layer some apps I feel I need and cannot get as flatpak. As flatpaks have progressed since then (F27 timeframe), I was able to gradually replace most of my layered items with faltpak’ed apps. But I still layer my preferred shell for instance, and vim-enhanced because I don’t really like nano as a terminal editor, fzf, exa, tldr, and the like. I think with more layered packages, the end result is more of a noticed time suck for updates, than a usability issue. By that I mean it takes proportionally longer to update since the new commit gets built locally after pulling in the newly updated parts.

1 Like

If you would layer all your stuff, then Silverblue would just be a slightly inconvenient regular Fedora install, so it should all just work (updating to the next version might be a bit more difficult).

On the other hand, not using flatpaks and toolboxes is like deliberately not using two of the three main paradigms around which Silverblue is designed (ostree, podman and flatpaks). It is perfectly allowed to do so, but kind of missing the point , imho.

Unlike what Stephen writes, I do use a toolbox as my default shell, so I (no longer) overlay my default shell, zsh, and I use a bunch of aliases to incorporate stuff from other toolboxes, so it all behaves as a “normal” install.

Silverblue is still quite new, and it’s not yet completely obvious what the “best practices” are, so there is not really a “wrong” way. For me, I try to use the tools offered, and not depend too much on how I’m used to do things. Flatpaks, for example, take some getting used to, but with the help of wrapper-scripts, and Flatseal, (for me) Silverblue a great Linux workstation, better even then regular Fedora.

What I’m trying to find out is if running things in toolbox should be preferred for users instead of layering. One of the main goals for toolbx is to become default Terminal/shell/command line interface for Silverblue and interact with host sporadically.

While we can now use all three options podman/toolbx, rpm-ostree and flatpak what is the preferred ideal combination by Silverblue goals long term.

My understanding on this is that users should try to make things work in toolbx and flatpak first and if that doesn’t work or it makes more sense to have things layered then rpm-ostree should be used.

Or perhaps I guess the question should be: What role is toolbx going to play in Silverblue long term.

Is it going to be the first class citizen aka container workflow on immutable OS …

Or is it going to be a cool tool that you could use to containerize your stuff while having system integration.

Can you share these somewhere? I’d like to learn how to do this!

2 Likes

For my part, I discovered the possibility of launching GUI applications (Grisbi, VLC) in the terminal of a toolbox; as a Frenchman, I am just annoyed by the fact that the menus of the applications are then in English (I do not know if there is a way to parameterize that).

I would have thought toolbx would use the same locale as the host, perhaps a bug there.

Yes, almost all methods are fine to be used. But please never cut access to the host OS in a terminal for “immutability”. It is sufficiently safe. I do use the host terminal for various purposes.