
SLES10 システム上の LDAP サーバーの負荷を軽減するために、NSCD (Name Service Caching Daemon) を使用する必要があります。私の経験では、GNU LibC の一部として提供されるデフォルトの nscd は役に立たず、数時間ごとにひどく壊れます。そのため、unscd や gnscd などの代替品の使用が必須です。
SLES10 にはこれらのいずれのパッケージも存在しないため、パッケージをコンパイルする必要があります。ただし、AppArmor には問題があります。SLE10 では、各アプリの AppArmor プロファイルが 1 つの大きな「apparmor-profiles」パッケージに統合されており、各パッケージが独自のプロファイルを提供することはありません。また、unscd/gnscd は apparmor-profiles のプロファイルでは機能しません。
Debian パッケージを作成するときに、Replaces: という関係を指定できます。これは、「この他のパッケージと同じファイルが含まれていることはわかっていますが、バージョンがこのチェックに一致する限り、そのファイルを上書きできます」という意味です。その結果、spec ファイルで「Replaces: apparmor-profiles (<= 2.0.1-20.20.16)」のように記述でき、apparmor-profiles パッケージの任意のファイルをきれいに置き換えることができます。
ファイルを削除して独自の apparmor-profiles パッケージを再コンパイルする、または rpm コマンドを使用してパッケージを強制する (これは将来的に問題を引き起こす可能性があります) 以外に、RPM で同じことを行うにはどうすればよいでしょうか?
答え1
RPM には類似の機能はないと思います。RPM には「Obsoletes」機能がありますが、これは 1 つのパッケージを別の名前のパッケージに置き換えるためのものです。複数の RPM が 1 つのオブジェクトを所有することは可能ですが、これは主に /etc/bash_completion.d などのディレクトリに使用されます。これは使用するディストリビューションによって異なります。パッケージ化のガイドラインはすべて若干異なります。