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.

Jawaban:



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 .


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.