Câu trả lời:
Vâng, rất dễ dàng để làm như vậy.
Chỉ viết:
Requires: somepackage >= 0.5.0, somepackage < 0.6.0
vào .spec
tập tin của bạn .
Thêm yêu cầu phiên bản
Khi một gói có nhu cầu nghiêm ngặt hơn một chút, có thể yêu cầu một số phiên bản nhất định của gói. Tất cả những gì cần thiết là thêm số phiên bản mong muốn, trước một trong các toán tử so sánh sau:
Yêu cầu gói có phiên bản nhỏ hơn phiên bản đã chỉ định.
Yêu cầu gói có phiên bản nhỏ hơn hoặc bằng phiên bản đã chỉ định.
Yêu cầu gói có phiên bản bằng với phiên bản đã chỉ định.
Yêu cầu gói có phiên bản bằng hoặc lớn hơn phiên bản đã chỉ định.
Yêu cầu gói có phiên bản lớn hơn phiên bản đã chỉ định.
Tiếp tục với ví dụ của chúng tôi, giả sử rằng phiên bản thanh gói yêu cầu thực sự cần ít nhất là 2,7 và gói baz phải là phiên bản 2.1 - không có phiên bản nào khác làm được. Đây là dòng thẻ yêu cầu sẽ trông như thế nào: yêu cầu: bar> = 2.7, baz = 2.1
Nguồn: http://rpm.org/user_doc/more_dependencies.html
Hệ thống được mô tả ở trên hoạt động cho hầu hết các gói; tuy nhiên, nếu gói bạn muốn yêu cầu được cung cấp dưới dạng [khả năng ảo] [1] hoặc được cung cấp theo cách khác (nghĩa là từ khóa "Cung cấp:") bởi các gói có tên khác nhau (không xung đột với nhau), thì bạn có thể kết thúc với hai gói khác nhau được cài đặt, mỗi gói đáp ứng một trong các yêu cầu của bạn. Ví dụ: nếu tệp spec của bạn chứa:
Requires: postgresql-server >= 8.4, postgresql-server < 9.0
Có thể dẫn đến (nếu bạn có sẵn các gói này cho yum) việc cài đặt:
Nhưng sẽ không cài đặt postgresql84-server, đây có thể là gói mà bạn dự kiến sẽ cài đặt.
(Trong trường hợp này, giải pháp đơn giản là yêu cầu máy chủ postgresql84; tuy nhiên, có thể có các ví dụ khác không có giải pháp dễ dàng.)
Tôi không rõ ràng nếu bạn đang cố gắng xây dựng một gói hoặc cài đặt một gói và "giới hạn" các phụ thuộc của nó.
Tôi không thấy cách tạo trường hợp thứ hai mà không xây dựng lại gói.
Bạn có thể truy xuất SRPM và chỉnh sửa tệp spec và để thêm / sửa đổi mục Yêu cầu (bạn muốn có bản sao 0,5.x, phải không?) Cho một cái gì đó như thế này:
Requires: somepackage = 0.5.0
và sau đó xây dựng lại với
rpmbuild -bb -v yourpackage.spec
Nếu bạn không bao giờ làm điều đó, nó có vẻ đáng sợ nhưng nó giải quyết vấn đề của bạn. Hãy nhớ rằng nếu đang tạo một gói công khai cho một bản phân phối, bạn có thể muốn đọc tính trung thực của nó bởi vì việc đặt phụ thuộc theo cách này thường không được khuyến nghị.