If you have ever done a yum update only to discover initscripts wouldn’t install or update, chances are you were scratching your head as to why. We have noticed this is a common problem on our CentOS 7 templates but is very easy to fix. An example of the error message you most likely received as a result of the protection attribute being enabled is as follows:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
initscripts-9.49.30-1.el7.x86_64.rpm | 429 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Updating : initscripts-9.49.30-1.el7.x86_64 1/2
Error unpacking rpm package initscripts-9.49.30-1.el7.x86_64
error: unpacking of archive failed on file /usr/lib/udev/rules.d/60-net.rules: cpio: rename
Verifying : initscripts-9.49.30-1.el7.x86_64 1/2
initscripts-9.49.24-1.el7.x86_64 was supposed to be removed but is not!
Verifying : initscripts-9.49.24-1.el7.x86_64 2/2
initscripts.x86_64 0:9.49.24-1.el7 initscripts.x86_64 0:9.49.30-1.el7
Luckily, the solution is quit simple, we just need to remove the protection attribute using chattr. Run the following as root to remove the attribute on 60-net.rules preventing us from updating initscripts:
chattr -i /usr/lib/udev/rules.d/60-net.rules
That’s it, try running yum update once more and the program will be updated without issue now.