web-dev-qa-db-ja.com

RPMでDebianパッケージの「Replaces:」関数をエミュレートするにはどうすればよいですか?

SLES10システムでLDAPサーバーの負荷を減らすために、NSCD(ネームサービスキャッシングデーモン)を使用する必要があります。私の経験では、GNU LibCの一部として提供されるデフォルトのnscdはガベージであり、数時間ごとにひどく壊れます。その結果、unscdやgnscdなどの代替品を使用する必要があります。

SLES10にはどちらのパッケージもありませんので、パッケージをコンパイルする必要があります。ただし、AppArmorには問題があります。SLE10では、すべてのアプリでAppArmorプロファイルが1つの大きな「apparmor-profiles」パッケージにマージされており、各パッケージに独自のプロファイルを提供させるのではなく、unscd/gnscdは機能しません。 apparmor-profilesのプロファイル。

Debianパッケージを作成するときに、Replaces:という関係を指定することができます。これは、「この他のパッケージと同じファイルを含めることはわかっていますが、バージョンがこのチェックに一致する限り、ファイルを上書きできます」というものです。その結果、スペックファイルで「Replaces:apparmor-profiles(<= 2.0.1-20.20.16)」のように言うことができ、apparmor-profilesパッケージのファイルをきれいに置き換えることができました。

ファイルを削除して自分のapparmor-profilesパッケージを再コンパイルするか、rpmコマンド(将来的に問題を要求します)を介してパッケージを強制する以外に、RPMで同じことをどのように行いますか?

7
directhex

RPMにはアナログ機能はないと思います。 RPMには「廃止」機能がありますが、これは、あるパッケージを別の名前の別のパッケージに置き換えるためのものです。複数のRPMが単一のオブジェクトを所有することもできますが、使用するディストリビューションに応じて、/ etc /bash_completion.dなどのディレクトリに主に使用されます。パッケージガイドラインはすべてわずかに異なります。

2
wzzrd