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-barve 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 eitherkartal orav orfoo ç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-barveya 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-barve sonra çalışma zamanında, varsa bar-fooihtiyacım olan kritere göre onları.
GÜNCELLEME: RPM'yi aldatan, ancak işleri doğru duruma getirebilecek başka bir fikir. Belki de %postRPM'nin veritabanına doğrudan girebilirim . Böylece %prebeni geçersiz bir kurulumdan koruyabilirdi ve %postRPM'yi, kurulum sırasında orada ne olduğuna bağlı olarak foo-barya bar-fooda 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 . %preVe %postbölümlerden uzak durun , sistemi alt etmeye çalışmayın .