It’s time again for another Techie Time post. I will sometimes use these to post notes about technical issues I’ve run into that had nary a single hit on Google for help. So, in the event someone else has the same issue, welcome!
For anyone uninterested in the subject, you can look away now. You were warned.
For the past few weeks I’d been keeping my work system completely updated with Fedora 8. Suddenly, at some point, I noted that ‘rpcbind’ wasn’t updating, failing with an RPM script error. Here’s that error:
error: %pre(rpcbind-0.1.4-13.fc8.x86_64) scriptlet failed, exit status 4
error: install: %pre scriptlet failed (2), skipping rpcbind-0.1.4-13.fc8
Eventually, this error caught up with me and NFS started not working and was wreaking havoc on our network. Here’s what I had to do to get the latest rpcbind installed:
rpm -ql rpcbind-0.1.4-13.fc8.x86_64.rpm > /tmp/scripts
Within that new file I took out just what I needed and edited it a bit. In particular, note the ‘-o’ with useradd and groupadd:
/usr/sbin/userdel rpc
/usr/sbin/groupdel rpc
# Now re-add the rpc uid/gid
/usr/sbin/groupadd -o -g 32 rpc
/usr/sbin/useradd -o -l -c "Rpcbind Daemon" -d /var/lib/rpcbind -g 32 \
-M -s /sbin/nologin -u 32 rpc
The ‘-o’ is necessary because this RPM kept failing because “32″ was not a unique userid. Thing is, it’s not in /etc/passwd (note that it removes it first!), so why it’s complaining I can only guess has to do with LDAP, though I haven’t had time to test yet.
Next, I forced the RPM to install without scripts, then ran the script:
rpm -U --force --noscripts rpcbind-0.1.4-13.fc8.x86_64.rpm
sh /tmp/scripts
Anyway, I hope that helps someone else.