Yanıtlar:
Evet, bunu yapmak çok kolay.
Sadece yaz:
Requires: somepackage >= 0.5.0, somepackage < 0.6.0
içine yerleştirin .spec
.
Sürüm Gereksinimleri Ekleme
Bir paketin biraz daha katı ihtiyaçları olduğunda, bir paketin belirli sürümlerini gerektirebilir. Tek yapmanız gereken, aşağıdaki karşılaştırma operatörlerinden önce gelen istenen sürüm numarasını eklemektir:
Belirtilen sürümden daha düşük bir sürüme sahip paket gerektirir.
Belirtilen sürüme eşit veya daha düşük bir sürüme sahip paket gerektirir.
Belirtilen sürüme eşit sürüme sahip paket gerektirir.
Belirtilen sürüme eşit veya daha büyük bir sürüme sahip paket gerektirir.
Belirtilen sürümden daha büyük bir sürüme sahip paket gerektirir.
Örneğimize devam edersek, paket çubuğunun gerekli sürümünün aslında en az 2.7 olması gerektiğini ve baz paketin 2.1 sürümü olması gerektiğini varsayalım - başka bir sürüm yapmayacak. Gerektiren etiket satırı şöyle görünecektir: gerektirir: bar> = 2.7, baz = 2.1
Kaynak: http://rpm.org/user_doc/more_dependencies.html
Yukarıda açıklanan sistem çoğu paket için çalışır; İstediğiniz isteyen vardır paketi [sanal yeteneği] olarak verilmiştir ancak, [1] ya da başka şekilde temin edilir (yani "Sağlar:" anahtar kelime) paketler ile farklı (birbirleriyle çakışmayan) adlarıyla, o zaman her biri gereksinimlerinizi ayrı ayrı karşılayan iki farklı paket yüklenebilir. Örneğin, spec dosyanız aşağıdakileri içeriyorsa:
Requires: postgresql-server >= 8.4, postgresql-server < 9.0
Şununla sonuçlanabilir (bu paketlerde yum varsa):
Ama olacak değil muhtemelen yüklediğiniz bekleniyor olurdu paketidir postgresql84-sunucu yükleyin.
(Bu durumda çözüm sadece postgresql84-server gerektirir; ancak, kolay bir çözümü olmayan başka örnekler de olabilir.)
Bir paket oluşturmaya veya bir paket kurmaya ve bağımlılıklarını "sınırlandırmaya" çalışıyorsanız benim için net değil.
Paketi yeniden oluşturmadan ikinci bir davayı yapmanın bir yolunu göremiyorum.
SRPM'yi alıp spec dosyasını düzenleyebilir ve giriş eklemek / değiştirmek için gerekli (somepackage 0.5.x istiyorsun, değil mi?) Gibi bir şeye:
Requires: somepackage = 0.5.0
ve sonra yeniden inşa
rpmbuild -bb -v yourpackage.spec
Hiç yapmadıysanız, göz korkutucu görünüyor, ancak sorununuzu çözüyor. Bir dağıtım için halka açık bir paket oluşturuyorsanız, guidelliğini okumak isteyebilirsiniz, çünkü bağımlılığı bu yollarla ayarlamak genellikle önerilmez.