spec spec: yêu cầu có điều kiện dựa trên phiên bản distro


8

Tôi đang cố gắng viết một thông số vòng / phút duy nhất cho RHEL / CentOS / SL 5 và 6. Thông số này dành cho ứng dụng python, vì vậy không có sự khác biệt trong quá trình xây dựng. Nhưng trên RHEL / CentOS5 tôi cần thêm một phụ thuộc bổ sung.

Làm thế nào tôi có thể xác định sự phụ thuộc chỉ cho el5? Tôi đã thử làm theo:

%if 0%{?redhat} == 5 || 0%{?centos} == 5
Requires:   kmod-coretemp
%endif

Không hoạt động (xây dựng trên CentOS5 không thêm phụ thuộc kmod-coretemp).

Tôi cũng đã thử như sau:

%if %{?dist} == "el5"

Nó báo cáo với lỗi cú pháp. Tôi chắc chắn rằng macro macro được đặt và chứa 'el5'. Nhưng tôi không chắc cú pháp của điều kiện trong vòng / phút là gì? rpmguide không có câu trả lời chi tiết.

Câu trả lời:



8

Fedora wiki, như thường lệ, cung cấp các hướng dẫn tốt nhất về bao bì. Hãy xem trang Bao bì: DistTag . Bạn có thể sử dụng %{el5}biến và một tốc ký có điều kiện để đảm bảo rằng Requiredòng liên quan được sử dụng khi xây dựng các gói cho EL5.

%{?el5:Requires: kmod-coretemp}

Bạn có thể muốn thêm distthẻ vào trường phiên bản để tránh nhầm lẫn sau này giữa các gói:

Release: 1%{?dist}

Xem Mục đích của Thẻ Dist .


Cảm ơn! Chà, vì một số lý do, hệ thống của tôi không có điều này, nhưng tôi đã xác định macro theo cách thủ công. Xin lỗi, đánh dấu câu trả lời của Ignacio là được chấp nhận, vì đây là câu trả lời đầu tiên.
rvs

1
Nếu chúng không có mặt thì bạn có thể cần cài đặt gói redhat-rpm-configtừ Yum.
Dan Carley

Nó đã được cài đặt, nhưng vẫn không có macro. Tôi tin rằng nó đặc trưng cho từng centos, như trên các máy rrc5 khác mà chúng được đặt.
rvs
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.