Wie emuliere ich die Funktion "Ersetzt:" eines Debian-Pakets in einem RPM?

7

Ich muss NSCD, den Name Service Caching Daemon, verwenden, um die Belastung unseres LDAP-Servers auf meinen SLES10-Systemen zu verringern. Nach meiner Erfahrung ist die Standard-NSCD, die als Teil von GNU LibC geliefert wird, Müll und wird alle paar Stunden schrecklich kaputt gehen. Daher ist die Verwendung eines Ersatzes wie unscd oder gnscd obligatorisch.

In SLES10 gibt es für beide keine Pakete, daher ist das Kompilieren eines Pakets erforderlich. Es gibt jedoch ein Problem mit AppArmor - in SLE10 wurde das AppArmor-Profil jeder einzelnen App zu einem großen "Apparmor-Profil" -Paket zusammengeführt, anstatt dass jedes Paket ein eigenes Profil bereitstellt - und unscd / gnscd funktioniert nicht die Profile in Apparmor-Profilen.

Wenn Sie ein Debian-Paket erstellen, können Sie eine Beziehung mit dem Namen "Ersetzt:" angeben, in der steht: "Ich weiß, dass ich dieselbe Datei wie dieses andere Paket einbinde, aber ich kann ihre Datei überschreiben, solange ihre Version dieser Prüfung entspricht." Infolgedessen könnte ich in meiner Spezifikationsdatei so etwas wie "Ersetzt: Apparmor-Profile (<= 2.0.1-20.20.16)" sagen und jede Datei aus dem Apparmor-Profil-Paket sauber ersetzen.

Wie würde ich dasselbe mit RPM tun, ohne mein eigenes Apparmor-Profile-Paket mit entfernter Datei neu zu kompilieren oder das Paket über den Befehl rpm zu erzwingen (der in Zukunft nach Problemen fragt)?

directhex
quelle
Können Sie keine zusätzliche Datei im Apparmor-Verzeichnis ablegen, die die Profile mit Ihrem Profil für [g | n] nscd enthält?
wzzrd
Nah-, gnscd- und unscd-Binärdateien müssen aus verschiedenen esoterischen Gründen "nscd" genannt werden. Nicht hilfreich, oder? o_o
directhex

Antworten:

2

Ich glaube nicht, dass RPM eine analoge Funktion hat. RPM verfügt über die Funktionen "Veraltet", dient jedoch zum Ersetzen eines Pakets durch ein anderes Paket mit einem anderen Namen. Sie können mehrere RPMs besitzen, die ein einziges Objekt besitzen. Dies wird jedoch hauptsächlich für Verzeichnisse wie /etc/bash_completion.d verwendet, je nachdem, welche Distribution Sie verwenden: Alle haben leicht unterschiedliche Verpackungsrichtlinien.

wzzrd
quelle