First Login
Filesystem Layout
The root filesystem has the immutable attribute set on OSTree
installations, so /
, /usr
and everything below it is readonly. /var
is
where all the runtime state is kept. There are some symlinks that put
the state-carrying directories in their traditional, expected place:
-
/home
→/var/home
-
/opt
→/var/opt
-
/srv
→/var/srv
-
/root
→/var/roothome
-
/usr/local
→/var/usrlocal
-
/mnt
→/var/mnt
-
/tmp
→/sysroot/tmp
and so on. If you have a separate home partition on your system, it
should be mounted on /var/home
.
For a more detailed explanation of the system layout, refer to the excellent libostree documentation on this subject.
Packaging: ostree, rpms, flatpaks and containers
ostree is responsible for deploying and updating the OS image (ie
everything below /
that is not symlinked into /var
). ostree also
contains the necessary logic to update grub.cfg entries to point to the
current image.
rpm-ostree builds on top of ostree, and makes it possible to install rpms as a 'layer' on top of an ostree image. In practice, that means you can install rpms as usual, just use rpm-ostree install instead of dnf install. What happens under the covers is that rpm-ostree will compose a new OS image by adding the rpm payload to the existing OS image, and creating a new, combined image. To see the newly installed rpms, you have to reboot into the new image. rpm-ostree also takes care of recreating the layered image whenever you update the base OS image.
flatpak uses container technologies to deploy and run desktop applications isolated from the underlying OS.
You can of course use other container tools like podman or buildah to run other containers on a Silverblue system.
Using Flatpak
If you don’t want to use the flatpak commandline tools, GNOME Software has excellent support for installing Flatpaks. There are several repositories that provide Flatpaks.
-
Flathub is a convenient place to find many popular desktop apps
-
GNOME nightly provides builds of unstable GNOME apps
Once you have repositories enabled, you can use GNOME Software’s
excellent support for searching Flatpaks. Or you can use flatpak
search
command.
Using Package Layering
Package layering works by re-composing the OS image locally, while
adding extra rpm packages to it. This is done with the rpm-ostree
install
command. Once a package has been layered, rpm-ostree will keep
it up-to-date for you and recreate the layer when you install a newer OS
image.
You can also remove a package from OS image. The command to do this is
rpm-ostree override remove
.
rpm-ostree does not currently have an equivalent to the dnf search
command for finding packages in the configured repositories. As a
workaround, you can run dnf in a temporary container like this:
$ sudo podman run --rm fedora:28 dnf search (1)
1 | provide your search term |
Enabling third-party RPM Repositories
Silverblue installs a number of yum repositories containing useful software that is not part of Fedora proper for various reasons. You can enable these repositories either during the initial setup of an new install, or from the "Software Repositories" dialog in GNOME Software.