I need to use NSCD, the Name Service Caching Daemon, to decrease load on our LDAP server, on my SLES10 systems. In my experience, the default nscd, supplied as part of GNU LibC, is garbage, and will break horribly every few hours. As a result, using a replacement, such as unscd or gnscd is mandatory.

There aren't packages for either of these in SLES10, so compiling up a package is required. However, there's a problem with AppArmor - in SLE10, every single app has had its AppArmor profile merged together into one big "apparmor-profiles" package, rather than letting each package provide its own profile - and unscd/gnscd don't work with the profiles in apparmor-profiles.

When making a Debian package, it's possible to specify a relationship called Replaces:, which says "I know I include the same file as this other package, but I can overwrite their file as long as their version matches this check". As a result, I could say something like "Replaces: apparmor-profiles (<= 2.0.1-20.20.16)" in my spec file, and I could cleanly replace any file from the apparmor-profiles package.

How would I do the same with RPM, short of recompiling my own apparmor-profiles package with the file removed, or forcing the package through the rpm command (which is asking for problems in the future)?

  • Can't you place an extra file in the apparmor directory containing the profiles with your profile for [g|n]nscd in it?
    – wzzrd
    Aug 11, 2010 at 8:27
  • Nah, gnscd and unscd binaries need to be called "nscd", for various esoteric reasons. Not helpful, is it? o_o
    – directhex
    Aug 11, 2010 at 20:16

1 Answer 1


I don't think RPM has an analogue feature. RPM has an "Obsoletes" features, but that's for replacing one package with another package with a different name. You are able to have multiple RPM's own a single object, but that is mostly used for directories, like /etc/bash_completion.d, depending on what distro you use: they all have slightly different packaging guidelines.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .