Czy można ustawić wymagania dotyczące wersji zależnych w ten sposób:
Required: somepackage >= 0.5.0 AND somepackage < 0.6.0
Więc tylko pakiet 0.5.x zostanie zainstalowany automatycznie.
Tak, bardzo łatwo to zrobić.
Tylko napisz:
Requires: somepackage >= 0.5.0, somepackage < 0.6.0
do twojego .spec
pliku.
Dodawanie wymagań wersji
Gdy pakiet ma nieco bardziej rygorystyczne potrzeby, można wymagać pewnych wersji pakietu. Wystarczy dodać żądany numer wersji, poprzedzony jednym z następujących operatorów porównania:
Wymaga pakietu z wersją mniejszą niż określona wersja.
Wymaga pakietu o wersji mniejszej lub równej podanej wersji.
Wymaga pakietu o wersji równej określonej wersji.
Wymaga pakietu o wersji równej lub większej niż określona wersja.
Wymaga pakietu o wersji większej niż podana.
Kontynuując nasz przykład, załóżmy, że wymagana wersja paska pakietu musi w rzeczywistości wynosić co najmniej 2.7, a pakiet baz musi mieć wersję 2.1 - żadna inna wersja tego nie zrobi. Oto jak powinna wyglądać wymagana linia znaczników: wymaga: bar> = 2.7, baz = 2.1
Źródło: http://rpm.org/user_doc/more_dependencies.html
System opisany powyżej działa dla większości pakietów; jeśli jednak pakiet, którego chcesz wymagać, jest dostarczany jako [funkcja wirtualna] [1] lub w inny sposób (tzn. słowo kluczowe „Zapewnia:”) w pakietach o różnych nazwach (które nie powodują konfliktów), wówczas może skończyć się zainstalowaniem dwóch różnych pakietów, z których każdy indywidualnie spełnia jedno z twoich wymagań. Na przykład jeśli plik specyfikacji zawiera:
Requires: postgresql-server >= 8.4, postgresql-server < 9.0
Może spowodować (jeśli masz te pakiety do dyspozycji) instalację:
Ale nie zainstaluje postgresql84-server, który prawdopodobnie jest pakietem, którego można się spodziewać.
(W tym przypadku rozwiązaniem byłoby po prostu wymaganie serwera postgresql84; istnieją jednak inne przykłady, które nie mają łatwego rozwiązania).
Nie jest dla mnie jasne, czy próbujesz zbudować pakiet lub zainstalować pakiet i „ograniczyć” jego zależności.
Nie widzę sposobu na zrobienie drugiego przypadku bez przebudowania pakietu.
Możesz pobrać plik SRPM i edytować plik specyfikacji oraz dodać / zmodyfikować wpis Wymaga (chcesz pakietu 0.5.x, prawda?) Do czegoś takiego:
a następnie odbuduj za pomocą
Jeśli nigdy tego nie zrobiłeś, wydaje się on zastraszający, ale rozwiązuje twój problem. Pamiętaj, że jeśli tworzysz pakiet publiczny dla dystrybucji, możesz przeczytać jego wytyczne, ponieważ ustawianie zależności w ten sposób zasadniczo nie jest zalecane.
źródło