Tek bir gereklilik yerine, belirli bir dosyada alternatif bir gereksinim veya bir dizi gereksinim nasıl belirtileceğini (veya belirtip belirtemeyeceğini) bilen var mı?
Örneğin, uygun şekilde foo-bar
ve adı verilen iki paket olduğunu varsayalım bar-foo
. Paketim bunlardan birini gerektiriyor ama ikisini de değil, hangisinin mevcut olduğunu umursamıyorum. Çalışma zamanında uygun olanı kullanıyorum.
Çok etkili bir şekilde şöyle demeyi istiyorum:
Requires: foo-bar OR bar-foo
Bunun mümkün olmadığını söyleyebildiğim kadarıyla, burada RPM hakkında benden çok daha fazla şey bilen insanlar var, belki de bunu yapmanın bir yolu var.
GÜNCELLEME: Ben sadece paketini kontrol ediyorum bar-foo
, değil foo-bar
, bu yüzden her ikisi de sanal bir paket sağlamak işe yaramaz.
GÜNCELLEME: Gerçekte ihtiyacım olan şey, her bir paketin içinde sanal bir paket . Ki foo-bar provides eagle' and
çubuk foo beagle içerir and my package works with either (or both); but other packages require either
kartal or
av or
foo çubuğu or
çubuk foo` ve hedef sistemi ya da olabilir veya her ikisi de.
Şu anda bu gibi bir %pre
şey yapan bir komut dosyası ile çözme doğru eğilerek :
rpm -q eagle || rpm -q beagle || echo "need eagle or beagle" && /bin/false
Bunun işe yarayacağından emin olduğum halde, RPM'nin bağımlılık izlemesinin acımasız bir şekilde çevrilmesi gibi görünüyor. Eğer sorulduğunda Mesela benim paketimi görmek asla whatrequires foo-bar
veya whatrequires beagle
.
GÜNCELLEME: İkinci düşüncede foo-bar
, en azından benim durumum için, insanların sahip olamayacakları bir yere kurmalarını isteme acıları, RPM bağımlılık yönetimini atlamanın acısından daha az. Bu nedenle, birileri "bu VEYA'yı" (genellikle RPM’de olması harika bir özellik olacağını düşünüyorum) gerektiği gibi istemediği bir yol bulamazsa , o zaman sadece talep etmeyi planlıyorum foo-bar
ve sonra çalışma zamanında, varsa bar-foo
ihtiyacım olan kritere göre onları.
GÜNCELLEME: RPM'yi aldatan, ancak işleri doğru duruma getirebilecek başka bir fikir. Belki de %post
RPM'nin veritabanına doğrudan girebilirim . Böylece %pre
beni geçersiz bir kurulumdan koruyabilirdi ve %post
RPM'yi, kurulum sırasında orada ne olduğuna bağlı olarak foo-bar
ya bar-foo
da her ikisine de ihtiyacım olduğunu söylerdi .
Önerileriniz için teşekkürler!
Provides: foo-bar
, bu yüzden her iki bağımlılığı da karşılar. Daha yeni rpm sürümleri için Boolean Bağımlılıkları'nı kontrol edin . %pre
Ve %post
bölümlerden uzak durun , sistemi alt etmeye çalışmayın .