उदाहरण के लिए मैं एक अनुप्रयोग बनाए रखता हूं जो libmemcached का उपयोग करता है। मैं libmemcached5 या libmemcached6 का उपयोग करके इसे संकलित कर सकता हूं, libmemcached5, libmemcached6 या यहां तक कि libmemcached5 | libmemcached6 को निर्भरता के रूप में इंगित करने के लिए .deb पैकेज भी बना सकता हूं, लेकिन वास्तव में मेरी बाइनरी केवल उनमें से एक के साथ संकलित है। उपयोगकर्ता के पक्ष में किसी भी निर्भरता को अपग्रेड/डाउनग्रेड किए बिना अपने पैकेज को तैनात करने के लिए मैं इस समस्या को हल करने का सबसे अच्छा तरीका क्या कर सकता हूं?एक निर्भरता के विभिन्न संस्करणों के साथ पैकेज कैसे बनाएं और तैनात करें?
5
A
उत्तर
1
यदि आप एक रिपॉजिटरी का उपयोग कर रहे हैं, या यदि आपके ऐप के कई संकलित संस्करण स्वीकार्य हैं, तो आपकी सबसे अच्छी शर्त है कि libmemcached5 के साथ और एक बार libmemcached6 के साथ, और अलग-अलग पैकेज नामों के साथ उन्हें अलग-अलग पैकेज करें। , और एक आभासी पैकेज का उपयोग स्वचालित रूप से सही एक स्थापित करने के लिए:
Package: myapplication-memchched5
Version: 1.3.17-1
Depends: libmemcached5
Provides: myapplication
Conflicts: myapplication
Replaces: myapplication
और
Package: myapplication-memchched6
Version: 1.3.17-1
Depends: libmemcached6
Provides: myapplication
Conflicts: myapplication
Replaces: myapplication
अब aptitude install myapplication
स्वचालित रूप से चयन करेंगे या तो myapplication-memchched5
या myapplication-memchched6
को और क्या स्थापित करने की जरूरत है के आधार पर।