Ist es möglich, bestimmte Versionsanforderungen wie folgt festzulegen:
Required: somepackage >= 0.5.0 AND somepackage < 0.6.0
Es wird also nur ein Paket 0.5.x automatisch installiert.
Ja, sehr einfach.
Einfach schreiben:
Requires: somepackage >= 0.5.0, somepackage < 0.6.0
in deine .spec
Datei.
Versionsanforderungen hinzufügen
Wenn ein Paket etwas strengere Anforderungen hat, können bestimmte Versionen eines Pakets erforderlich sein. Dazu muss lediglich die gewünschte Versionsnummer hinzugefügt werden, vor der einer der folgenden Vergleichsoperatoren steht:
Benötigt ein Paket mit einer Version, die kleiner als die angegebene Version ist.
Erfordert ein Paket mit einer Version, die kleiner oder gleich der angegebenen Version ist.
Erfordert ein Paket mit einer Version, die der angegebenen Version entspricht.
Erfordert ein Paket mit einer Version, die der angegebenen Version entspricht oder höher ist.
Erfordert ein Paket mit einer Version, die größer als die angegebene Version ist.
Nehmen wir an, dass die erforderliche Version von package bar mindestens 2.7 und das baz-Paket Version 2.1 sein muss - keine andere Version wird dies tun. So würde die erfordert-Tag-Zeile aussehen: erfordert: bar> = 2.7, baz = 2.1
Quelle: http://rpm.org/user_doc/more_dependencies.html
Das oben beschriebene System funktioniert für die meisten Pakete. Wenn das Paket, das Sie benötigen möchten, jedoch als [virtuelle Funktion] [1] bereitgestellt wird oder auf andere Weise bereitgestellt wird (dh das Schlüsselwort "Provides:"), durch Pakete mit unterschiedlichen Namen (die nicht miteinander in Konflikt stehen), dann Sie Möglicherweise werden zwei verschiedene Pakete installiert, von denen jedes einzeln eine Ihrer Anforderungen erfüllt. Zum Beispiel, wenn Ihre Spezifikationsdatei enthält:
Requires: postgresql-server >= 8.4, postgresql-server < 9.0
Kann dazu führen (wenn Sie diese Pakete zur Verfügung haben), dass Folgendes installiert wird:
Es wird jedoch kein postgresql84-Server installiert, bei dem es sich wahrscheinlich um das Paket handelt, von dem Sie erwartet hätten, dass es installiert ist.
(In diesem Fall würde die Lösung einfach darin bestehen, einen postgresql84-Server zu benötigen. Es gibt jedoch wahrscheinlich auch andere Beispiele, für die es keine einfache Lösung gibt.)
Es ist mir nicht klar, ob Sie versuchen, ein Paket zu erstellen oder ein Paket zu installieren und dessen Abhängigkeiten zu "begrenzen".
Ich sehe keinen Weg, den zweiten Fall zu schaffen, ohne das Paket neu zu erstellen.
Sie können das SRPM abrufen und die Spezifikationsdatei bearbeiten sowie den Eintrag Requires (Sie möchten ein Paket 0.5.x, oder?) Wie folgt hinzufügen / ändern:
und dann mit neu aufbauen
Wenn Sie es nie getan haben, wirkt es einschüchternd, löst aber Ihr Problem. Bedenken Sie, dass Sie beim Erstellen eines öffentlichen Pakets für eine Distribution möglicherweise dessen Richtlinien lesen möchten, da diese Methode für das Festlegen von Abhängigkeiten im Allgemeinen nicht empfohlen wird.
quelle