On Wed, Nov 06, 2019 at 01:42:54PM -0500, Greg Wooledge wrote: > On Wed, Nov 06, 2019 at 09:01:46PM +0300, Reco wrote: > > That's interesting. libnss-systemd ships a valid postrm script that's > > supposed to do just that - removing "systemd" entries from > > nsswitch.conf ($module=systemd, $file=/etc/nsswitch.conf): > > > > # we must remove possible [foo=bar] options as well > > sed -i -r "/(passwd|group):/ > > s/[[:space:]]+$module\b([[:space:]]*\[[^]]*\])*//" $file > > > > But: > > > > 1) postrm script bails if it finds that libnss-systemd is still > > installed, but for another architecture. > > > > 2) It invokes "sed", not "/bin/sed", and that's another possible reason > > for such failure - locally installed /usr/local/bin/sed which does not > > understand "-i" option or misinterprets that regexp. > > Wouldn't a locally installed perl have the same problem if they switched > it to perl?
It's possible, sure. But consider the complexity of building own perl vs "ln -s /bin/busybox /usr/local/bin/sed". > It's also missing the ^ anchor, so it will try to affect other lines > like "netgroup:" as well as "group:". That's third thing that postinst does right, and postrm does not. > But apart from those issues, it doesn't look immediately wrong to me. > It should be interesting to see exactly what caused the problem. Same here. Reco