Fedora Silverblue 36 will not succesfully deploy after layering packages

Can confirm, doing a rollback then upgrade again did the trick for me just now. No reported errors and no pending updates.


Are you able to do further deployments? For example can you layer a package and restart without doing anything out of the ordinary and have it work correctly?


@fastoslinux 's workaround using grub2-mkconfig put my system back on track. Thanks.


Kionite. grub2-mkconfig Did the job as well. I thought I messed up laptop installation x)


I did an rpm-ostree update today, and everything worked fine – no need for sudo grub2-mkconfig. The new GRUB entry booted with no issue.


Another possible solution is sudo ostree admin finalize-staged as noted https://discussion.fedoraproject.org/t/update-again-and-again/41526


Well, I’m back 4 days later with the issue still happening. Every time I want to do a follow up sudo rpm-ostree upgrade I’m presented with the original problem and have to rollback, reboot, and then upgrade again. That seemingly takes, but then I try to perform the upgrade again, and I get the failed to finalize previous deployment.

I’ll try the sudo ostree admin finalize-staged after performing the upgrade.

1 Like

So, now I have tried to run these commands:

sudo rpm-ostree upgrade # I don't know if you NEED sudo
sudo ostree admin finalize-staged
sudo grub2-mkconfig

Rebooted, and everything seems to be going well. I read about these in this thread, and another here, then over at these two GitHub issues for rpm-ostree/3925 and fedora-silverblue/322. I also found a blog someone wrote which talks about how they fixed this as well, here. Whether or not these actually fix the issue is something I don’t know, but they make it so the updates successfully take.

I generally try to not layer on more packages than I need for Fedora Silverblue. Everything else is done through the Toolbox or Flatpaks.


Yes, but the idea is to test if layering a package works or not, regardless of if you regularly do it. If layering (and unlayering) a package does not work without workarounds then the core issue is not actually solved.

I tested this by layering in a package – I used hugo – and it worked as expected.

So for me, this issue appears to be resolved.

I didn’t need hugo layered (I run it both in a Toolbox and as a local binary), so I rolled back, which also worked.


I have the same problem with silverblue 36. I am trying to install the tkinter package using rpm-ostree, and when I run rpm-ostree status no extra packages are listed.
I have tried the various ‘fixes’, including grub2-mkconfig, and ostree admin finalize-staged, but no change. I can install tkinter into a toolbox, but not into my rpm-ostree install. I have tried installing a few gtk apps, but no luck.
rpm-ostree update seems to work.
I have tried a rollback and then an update, but I am still unable to install any packages successfully.

I had to manually edit /etc/grub2.cfg and update the kernelopts variable, and also to manually edit the link in /sysroot/ostree/boot.0/fedora/[branch_id?]

before I could get to see the installed gtk app in the os. But I still wasn’t able to install python3-tkinter package. It installs, runs scripts etc, but I can’t find the package in the site-packages directory.
It shows in /sysroot/ostree/repo/refs/heads/rpmostree/pkg/python3-tkinter
but I don’t know enough about ostree to understand if there is a command that can show me whether it is installed or not, and I now have the error:

State: idle
Warning: failed to finalize previous deployment

running ostree admin finalize-staged worked to remove the warning, but python3-tkinter was still not installed.

edit… Ok, I finally got it installed by installing the python3-tkinter package and running ostree admin finalize-staged and grub2-mkconfig before rebooting.

does grub2-mkconfig do anything without the -o flag? I thought it just outputs the new config to stdout?

Please see this …

1 Like

I fixed it following this suggestion:

rpm-ostree update
sudo grub2-mkconfig
1 Like