Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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)?

share|improve this question
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 '10 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 '10 at 20:16

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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.