3 months ago, I stopped using silverblue because I was having issues with updating my system. The conclusion from some community members is that rpm-ostree is not intended to be used with layered packages.
However, recently, I came across this article which seems to suggest that layered packages are supported and expected to be used. So I am confused and would like clarification.
It’s clearly supported as evidenced by the presence of the feature.
However, as a desktop user wanting to upgrade the same machine frequently, you’ll find (as you already have), that it makes the upgrade procedure between releases a bit more involved.
I’ve seen several people mentioning that they keep a script around so that they can to a
rpm-ostree reset first, then run it (with minor changes), to set the layering up the same way again on the new version (maybe after changing the version for their rpmfusion repos or whatever).
Personally I have very few layered packages, so I’ve generally just kept the
rpm-ostree status for the previous version before upgrading, then use that to reinstall the same list of packages afterwards. Right now I have 16 layered packages and no other overrides, so it’s pretty manageable to do a couple of times a year.
Just to be clear, I was having issues simply doing a regular update (
rpm-ostree update) - not upgrading between releases e.g. going from 33 to 34.
If you would like to install something on Silverblue, you should use one of these methods:
- for GUI apps, find and install a flatpak, if the app not exist in fedora flatpak repository, you can enable flathub and try again, it have more apps packaged in flatpak
- for CLI tools or GUI apps that does not have a flatpak, install in toolbox
- for apps and libraries that cannot be installed in toolbox (for example codecs, system libraries, etc.) install using package layering
Package layering should be used only when you can’t use flatpak or toolbox to install something.
Hello @tahayassen ,
And welcome to the community discussion area! To answer your first question in the topic. Yes definitely layer to your hearts content, otherwise just use ostree without the added libdnf, right? I have several packages layered, some local, I can update/upgrade without issues, most times. What I have found is that the system, both the rpm-ostree main system and the flatpak system get cruft built up over time. In my case, since I edit mag articles, I often install the software of the article topic to try it out for myself, which I later uninstall. All this install/remove over time causes me to not be able to update, usually with some error about one pkg or another not being able to be replaced. I will run ‘rpm-ostree cleanup -m’ (repo metadata) and ‘sudo flatpak repair’, then retry and it usually works. If it doesn’t there is ‘rpm-ostree cleanup -p’ to remove any pending deploy’s. Or ‘rpm-ostree cleanup -b’ to clear temporary files but leave the deployments unchanged. Overrides, where you substitute or remove completely, some package from the base commit will be persistent across updates, but at upgrade time can be a pain. They are usually needed to be reset before upgrade and re-applied afterwards if necessary. There is no rule as to when or whether you should or shouldn’t use layering as opposed to flatpaks, or containers like toolbox. That is really dependent upon your use, and desired/evolved work flow.