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.