2012-11-15 20 views
5

उदाहरण के लिए मैं एक अनुप्रयोग बनाए रखता हूं जो libmemcached का उपयोग करता है। मैं libmemcached5 या libmemcached6 का उपयोग करके इसे संकलित कर सकता हूं, libmemcached5, libmemcached6 या यहां तक ​​कि libmemcached5 | libmemcached6 को निर्भरता के रूप में इंगित करने के लिए .deb पैकेज भी बना सकता हूं, लेकिन वास्तव में मेरी बाइनरी केवल उनमें से एक के साथ संकलित है। उपयोगकर्ता के पक्ष में किसी भी निर्भरता को अपग्रेड/डाउनग्रेड किए बिना अपने पैकेज को तैनात करने के लिए मैं इस समस्या को हल करने का सबसे अच्छा तरीका क्या कर सकता हूं?एक निर्भरता के विभिन्न संस्करणों के साथ पैकेज कैसे बनाएं और तैनात करें?

उत्तर

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 को और क्या स्थापित करने की जरूरत है के आधार पर।

संबंधित मुद्दे