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 also missing the ^ anchor, so it will try to affect other lines like "netgroup:" as well as "group:". But apart from those issues, it doesn't look immediately wrong to me. It should be interesting to see exactly what caused the problem.