I had previously removed Firefox from Fedora Silverblue 33 with rpm-ostree override remove firefox. This worked well and for a while i only had the flatpak version of firefox installed on my system. However, this morning I did an rpm-ostree upgrade and it installed the rpm version of firefox again without me telling it to.
It is now permanently installed on my system. If I try and re-run the override command, I get: error: Override already exists for package 'firefox'. If I try and rpm-ostree override reset firefox, then reboot, then re-apply the override, and again reboot, then I still have two versions of firefox installed .
I also tried resetting the override, and rpm-ostree install firefox, but I got the error that firefox was already installed.
I’m not sure what else to try and am open to suggestions.
[dave@localhost ~]$ rpm-ostree install firefox
error: "firefox" is already provided by: firefox-85.0-8.fc33.x86_64. Use --allow-inactive to explicitly require it.
[dave@localhost ~]$ rpm-ostree install firefox --allow-inactive
error: Package/capability 'firefox' is already requested
[dave@localhost ~]$ rpm-ostree override remove firefox
error: Override already exists for package 'firefox'```
Try “rpm-ostree remove firefox-85.0-8.fc33.x86_64” to see if it will remove the specific package.
If not, then you said you did an override reset then a reboot and then reapplied the override and reboot again. Why did you not remove firefox after the reset and before you reapplied it. Logic says reset the override → remove firefox → reapply the override. Or rather, reset the override → reboot → remove firefox (by version number, which is not the base version number) and reapply the override → reboot then hopefully it will be removed.
Reading up on rpm-ostree I found this.
In order to uninstall a package that is a part of the base layer, use `rpm-ostree override remove <pkg>` . For example, `rpm-ostree override remove firefox` .
However, it says nothing about the override preventing the system from reinstalling something that is part of the base layer of the system especially if it is an update to that base package. It also says that the removal is “offline” so that it cannot actually be seen on a running system but needs to be rebooted for it to take effect.
One possibility, since you prefer the flatpak, would be to create an alias to the flatpak version and just ignore the system version.
There are issues with the current rpm-ostree-2021.1-3.fc33 and libsolv-0.7.17-1.fc33 packages that makes it impossible to override anything in base image. What most likely happened is that you upgraded to these versions and because of the issues, your Firefox override became inactive. rpm-ostree override remove doesnt remove packages from the base image it just “hides” them. Because the override became inactive Firefox reappeared.
The message error: Override already exists for package 'firefox' you get is probobly because the override exists but it’s just inactive.