Spek rpm: memerlukan kondisi berdasarkan versi distro

8

Saya mencoba menulis spesifikasi rpm tunggal untuk RHEL / CentOS / SL 5 dan 6. Spesifikasi ini untuk aplikasi python, jadi tidak ada perbedaan dalam proses pembuatan. Tetapi pada RHEL / CentOS5 saya perlu menambahkan satu ketergantungan tambahan.

Bagaimana saya mendefinisikan ketergantungan hanya untuk el5? Saya sudah mencoba mengikuti:

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

Tidak berfungsi (build on CentOS5 tidak menambah ketergantungan kmod-coretemp).

Saya sudah mencoba juga mengikuti:

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

Ini melaporkan dengan kesalahan sintaks. Saya yakin dist makro diatur dan mengandung 'el5'. Tapi saya tidak yakin apa sintaksis jika conditional dalam rpm? rpmguide tidak memiliki jawaban terinci.

rvs
sumber

Jawaban:

5

Pedoman pengemasan tag dist.

Ignacio Vazquez-Abrams
sumber
hm, itu tidak menunjukkan tag untuk centos di halaman itu.
dothebart
1
@dothebart: "RHEL n (semua varian)"
Ignacio Vazquez-Abrams
8

Wiki Fedora, seperti biasa, memberikan pedoman terbaik tentang pengemasan. Lihatlah halaman Pengemasan: DistTag . Anda dapat menggunakan %{el5}variabel dan kondisi tulisan cepat untuk memastikan bahwa Requirebaris relevan digunakan ketika membangun paket untuk EL5.

%{?el5:Requires: kmod-coretemp}

Anda mungkin ingin menambahkan disttag ke bidang versi untuk menghindari kebingungan antar paket:

Release: 1%{?dist}

Lihat Tujuan Tag Dist .

Dan Carley
sumber
Terima kasih! Yah, sistem saya tidak memiliki ini untuk beberapa alasan, tetapi saya telah mendefinisikan makro secara manual. Maaf, menandai jawaban Ignacio sebagai diterima, seperti yang pertama.
rvs
1
Jika tidak ada maka Anda mungkin perlu menginstal paket redhat-rpm-configdari Yum.
Dan Carley
Sudah diinstal, tetapi masih tidak ada makro. Saya percaya ini khusus untuk centos, seperti pada mesin rhel5 lain yang ada.
rvs