What exactly is Fedora Silverblue (or other Atomic desktops)?

What exactly is Fedora Silverblue (or other Atomic desktops)?
I’m coming from Fedora Workstation with GNOME. The information I could find is a bit shallow, I’d like some deeper knowledge

As far as I understand, it is:

  • Regular Fedora (in case of Fedora Silverblue, it is a Fedora Workstation with GNOME)
  • atomic, i.e.:
    • the root file system is mounted as read-only
    • updates to RPM packages can only be installed via rpm-ostree on a read/write mounted BTRFS overlay of the root filesystem, and will only be in effect after next reboot
    • I can roll back to the previous state (BTRFS snapshot) easily
  • updates to flatpak work just as on regular Fedora Workstation, i.e., are available immediately after installation
  • More GUI applications are installed as Flatpak compared to Fedora Workstation
  • almost everything else works as on Fedora Workstation

What I don’t understand/know:

  • Are the atomic desktops using the exact same RPM repos or are there differences?

  • Can I still use any RPM installed desktop applications? (I understand that I need to reboot the machine after installing applications to make them available)

  • On the Silverblue website it says:

    Graphical applications are installed via Flatpak, and keep themselves separate from the base system. They also allow for fine-grained control over their permissions.

    Does this refer to any other permission control than what you can get with flatpak already (e.g. as can be edited with Flatseal)?

  • Assuming I don’t (un-)install any applications or otherwise modify the root filesystem (/ itself or any content below /usr or /etc), will I see any different behavior than with Fedora Workstation?

  • Atomic distros use the same Fedora repos
  • You can still install RPM packages on your host using rpm-ostree (in the future it’s planned to let dnf install stuff on your host system). But the intended way of installing stuff is flatpak first (either Fedora Flatpaks or Flathub) or toolbox.
  • It is referring to Flatseal / the flatpak overrides command. It also refers to portals, but those aren’t limited to just flatpak.
  • There’s some differences. It’s been a while since I used Workstation, but here’s what I remember. (1) There’s no “don’t turn off your ccomputer, updates are installing” screen since rpm-ostree handles this in the background, (2) the error reporting app isn’t installed, (3) Fedora Flatpaks don’t have a good codec story yet since there’s no RPMFusion equivalent (it’s being worked on).
2 Likes

Thanks so far!

Do you refer to GNOME Abrt? Do you know why it is not installed? Wouldn’t it work?

But I could still install RPM packages from RPMFusion (and need additional reboot after installation), right?

And if I installed RPM packages, would I just use DNF as on Workstation (and rpm-ostree handles the BTRFS snapshot handling transparently)? Or is there a difference, i.e., would I call a different command?

Do you refer to GNOME Abrt? Do you know why it is not installed? Wouldn’t it work?

Yes, GNOME Abrt. I don’t know why it isn’t installed, I just noticed it wasn’t.

But I could still install RPM packages from RPMFusion (and need additional reboot after installation), right?

Yes, you can still add RPMFusion. I had to do that when I had a NVIDIA card. I believe it’s also an option in the first setup (“third party repos” or something like that).

And if I installed RPM packages, would I just use DNF as on Workstation

Currently, you have to use rpm-ostree to manage packages. But it’s planned to phase out this command and to introduce its functionality into DNF.

(and rpm-ostree handles the BTRFS snapshot handling transparently)?

Fedora Atomic doesn’t use BTRFS snapshots. It uses ostree, often described as git for binaries.

Or is there a difference, i.e., would I call a different command?

There are differences in the commands, some subtle, some big. A subtle one comes to uninstalling software. If you installed pkgA, you would uninstall it with “rpm-ostree remove pkgA”. But if that package came as part of the system, you would instead have to run “rpm-ostree override remove pkgA”. There’s also no easy way add COPR repos, though I’ve read it’s possible.

1 Like

Thanks for your elaborate answer!

Even though this topic is marked solved, I must interject on this point … (moderators, please chill)

It is easy to add/list/edit remotes for the atomic fedora versions …
the command

 ostree remote [OPTION…] COMMAND

Remote commands that may involve internet access

Builtin "remote" Commands:
  add               Add a remote repository
  delete            Delete a remote repository
  show-url          Show remote repository URL
  list              List remote repository names
  gpg-import        Import GPG keys
  gpg-list-keys     Show remote GPG keys
  add-cookie        Add a cookie to remote
  delete-cookie     Remove one cookie from remote
  list-cookies      Show remote repository cookies
  refs              List remote refs
  summary           Show remote summary

Help Options:
  -h, --help        Show help options

Application Options:
  -v, --verbose     Print debug information during command processing
  --version         Print version information and exit

Is how it is done … ie …

sudo ostree remote add [name wanted for remote] [url for remote]

1 Like

As mentioned in the previous post, although this topic is marked as solved, I want to clarify a couple of points.

For the foreseeable future, we can continue to rely on rpm-ostree for local package layering for both traditional OSTree systems and unofficial Atomic Desktops bootable containers.

Going forward, the local package layering story for bootable containers is still not very clear. As far as I know, the dnf team is working in the vicinity but not yet directly on it. There is already a dnf-bootc plugin, but for now only for dnf4, if I understand correctly. They just wrapped up “transient package installs”, which is related.

The correct command is rpm-ostree uninstall.