Just trying to understand, when an rpm gets installed in it’s pre/post script steps it appears that it’s looking at a version of /usr/lib/{passwd,group} buried somewhere in the ostree.
Where can I go read to understand this install process?
I can provide some info, but I’m by no means an expert. Silverblue has two different passwd files - one in /lib/passwd and another at /etc/passwd. The former being the one that is maintained by the OS, and is immutable once the system is running, and the latter the one that is meant for user-modifications. The system uses nss-altfiles to reconcile them during operation.
That being said, I am unable to replicate that error on my VM system:
I don’t know how my system got into a funky state, but I was able to workaround this problem by booting a usb drive, mounting the read only btrfs partion read/write, grep for the “/usr/lib/passwd” file in the ostree/ directory and add the missing entry. Booting back into Silverblue after adding the missing user, I was able to install openvswitch successfully.
It’d be a “nice to have” to have logging for the packages that modify things like system users/groups so at least there’d be a forensic trail to see what package clobbered it.
Upvote for less magic re: the github issue #49, but seeing that it was created in 2014, it looks like a tricky issue.