Rpm-ostree consecutive commands install, and override, only the last one persistent?

The Fedora Silverblue getting started guide misses 1 very important aspect of rpm-ostree:
If you run:
rpm-ostree install pluma
rpm-ostree install nemo
And reboot, you will only have Nemo. Not Pluma.

Similary I would like to understand if I can run these commands one by one, reboot and expect all of them to be persistent?

rpm-ostree install hunspell-$lang wireguard-tools gnome-screenshot gnome-connections nemo pluma nextcloud-client gnome-shell-extension-dash-to-panel.noarch gnome-shell-extension-appindicator.noarch gnome-shell-extension-drive-menu.noarch
# Firefox
rpm-ostree override remove firefox && flatpak install flathub org.mozilla.firefox flathub org.freedesktop.Platform.ffmpeg-full

Or should I also combine this into 1 very long line?

Additionally, the documentation doesn’t mention this, but should it be rpm-ostree override replace firefox? It seems rpm-ostree override remove is only meant for layered packages, not meant for packages that are part of the base image (all I need is to disable firefox, so I can use a different version) ?

This is not accurate. When you perform an operation, a pending deployment is created. Subsequent operations build upon that deployment

By default, every rpm-ostree operation is “offline” - it has no effect on your running system, and will only take effect when you reboot. This “pending” state is called the “pending deployment”. Operations can be chained; for example, if you invoke rpm-ostree upgrade after installing a package, your new root will upgraded with the package also installed.

HUH, ok that is good news ofcourse but what about this:

Specifically:
If you run rpm-ostree install several times consecutively without rebooting or applying changes live, only the most recent command will take effect. If you install wget and strace consecutively and reboot afterwards, only strace will be present after reboot.

which is a copy-paste from the documentation here.

additionally: there are more topics here about people asking how to run multiple rpm-ostree commands at once…

To confirm, I just tried rpm-ostree install btop followed by rpm-ostree install strace. As expected, both appeared in the ‘Added:’ section for the latter command, and both appear in the pending deployment in rpm-ostree status.

I haven’t read that whole page to see if I’m missing some context, but it seems to simply be wrong. It’s possible it was true for the ancient version of rpm-ostree in RHEL Atomic Host 7.

All rpm-ostree override subcommands apply to the base image. override remove simply removes a base package, whereas override replace lets you replace it with another.

rpm-ostree uninstall is the only way to remove a layered package.

2 Likes