When trying to update my Fedora Silverblue installation I get the following error:
$ rpm-ostree upgrade
...
error: Running %post for akmod-nvidia: Executing bwrap(/bin/sh): Child process killed by signal 1; run `journalctl -t 'rpm-ostree(akmod-nvidia.post)'` for more information
I try to look up more information:
$ journalctl -t 'rpm-ostree(akmod-nvidia.post)' | tail -25
...
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: warning: rpmdb: BDB2053 Freeing read locks for locker 0x3a: 2315/140631765849664
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: warning: rpmdb: BDB2053 Freeing read locks for locker 0x3b: 2315/140631765849664
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: warning: rpmdb: BDB2053 Freeing read locks for locker 0x3c: 2315/140631765849664
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: warning: user mockbuild does not exist - using root
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: warning: group mock does not exist - using root
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: warning: user mockbuild does not exist - using root
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: warning: group mock does not exist - using root
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: Installing /usr/src/akmods/nvidia-kmod-460.39-1.fc33.src.rpm
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: Building target platforms: x86_64
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: Building for target x86_64
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: setting SOURCE_DATE_EPOCH=1611619200
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: error: Failed build dependencies:
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: /usr/bin/kmodtool is needed by nvidia-kmod-3:460.39-1.fc33.x86_64
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: gcc is needed by nvidia-kmod-3:460.39-1.fc33.x86_64
Feb 13 11:26:19 $(hostname) rpm-ostree(akmod-nvidia.post)[11268]: xorg-x11-drv-nvidia-kmodsrc >= 3:460.39-1 is needed by nvidia-kmod-3:460.39-1.fc33.x86_64
What is weird is that this package exists on my current ostree commit:
$ rpm-ostree db list 5d1a6e407d9650a631d89e823fda647409fd2d09832c04763a9b00cd3acdfb84 | grep nvidia
akmod-nvidia-3:460.39-1.fc33.x86_64
nvidia-persistenced-3:460.39-1.fc33.x86_64
nvidia-settings-3:460.39-1.fc33.x86_64
xorg-x11-drv-nvidia-3:460.39-1.fc33.x86_64
xorg-x11-drv-nvidia-cuda-3:460.39-1.fc33.x86_64
xorg-x11-drv-nvidia-cuda-libs-3:460.39-1.fc33.i686
xorg-x11-drv-nvidia-cuda-libs-3:460.39-1.fc33.x86_64
xorg-x11-drv-nvidia-kmodsrc-3:460.39-1.fc33.x86_64
xorg-x11-drv-nvidia-libs-3:460.39-1.fc33.i686
xorg-x11-drv-nvidia-libs-3:460.39-1.fc33.x86_64
I don’t know if this is a repository problem. The software center, after installation, had the option to enable a nonfree nvidia drivers repository. The repo file is:
I also had this and I think it is still one of the issues that the upgrade to libsolv-0.7.17-1.fc33 caused. Fortunately everything seams to be fixed now with the newest rpm-ostree-2021.1-4.fc33 version. I upgraded the OS, layered and overrode packages after upgrading to this version.
You can try to reset the image or remove nvidia packages and then try to upgrade (witch worked for some people) but I managed to upgrade to new deployment without doing that, by installing rpm-ostree-2021.1-4.fc33.x86_64.rpm and rpm-ostree-libs-2021.1-4.fc33.x86_64.rpm manually in usroverlay and then upgrading.
However I still can’t fully get away from the whole libsolve/rpm-ostree bug. I 've written a write up to the developers here. Hope it will help resolve the issue.
Note that my solution above had the unintended consequence of taking the installation outside the main tree. This resulted in this bug reported at GitHub. The fix is to run:
$ rpm-ostree rebase fedora:fedora/33/x86_64/silverblue
from a working commit.
Given the above @aitvaras 's solution is the best one to try. (Especially since other people have reported that it works for them.)