Відповіді:
Так, зробити це дуже просто.
Просто напишіть:
Requires: somepackage >= 0.5.0, somepackage < 0.6.0
у ваш .spec
файл.
Додавання вимог до версії
Якщо пакет має трохи більш суворі потреби, можна вимагати певних версій пакета. Все, що потрібно - це додати потрібний номер версії, який передує одному з наступних операторів порівняння:
Потрібен пакет з версією меншою, ніж зазначена версія.
Потрібен пакет з версією, меншою або рівною зазначеній версії.
Потрібен пакет з версією, рівною вказаній версії.
Потрібен пакет з версією, рівною або більшою, ніж зазначена версія.
Потрібен пакет з версією, що перевищує вказану версію.
Продовжуючи наш приклад, припустимо, що потрібна версія панелі пакунків насправді повинна бути не менше 2,7, а пакет baz повинен бути версією 2.1 - жодна інша версія не буде робити. Ось як виглядатиме потрібний рядок тегів: потрібно: bar> = 2,7, baz = 2,1
Джерело: http://rpm.org/user_doc/more_dependency.html
Описана вище система працює для більшості пакетів; однак, якщо пакет, який ви хочете вимагати, надається як [віртуальна можливість] [1] або надається іншим чином (наприклад, ключове слово "надає:") пакетами з різними іменами (які не суперечать один одному), то ви може встановити два різних пакети, кожен з яких окремо відповідає одній із ваших вимог. Наприклад, якщо ваш специфікаційний файл містить:
Requires: postgresql-server >= 8.4, postgresql-server < 9.0
Це може призвести до встановлення (якщо у вас є ці пакети):
Але не буде встановлено postgresql84-сервер, який, мабуть, був би пакетом, який ви могли б встановити.
(У цьому випадку рішенням було б просто вимагати postgresql84-сервера; проте, ймовірно, є й інші приклади, які не мають простого рішення.)
Мені незрозуміло, чи намагаєтесь ви скласти пакет чи встановити пакет і "обмежити" його залежності.
Я не бачу способу зробити другий випадок без відновлення пакету.
Ви можете завантажити SRPM і відредагувати специфікаційний файл, а також додати / змінити запис Потрібно (ви хочете трохипакет 0.5.x, чи не так?) На щось подібне:
Requires: somepackage = 0.5.0
а потім відновити с
rpmbuild -bb -v yourpackage.spec
Якщо ви ніколи цього не робили, це здається залякаючим, але це вирішує вашу проблему. Майте на увазі, що якщо ви створюєте загальнодоступний пакет для дистрибутива, вам, можливо, захочеться ознайомитися з його принципами, оскільки встановлювати залежність цим способам, як правило, не рекомендується.