मैंने डेबियन आईआरसी चैनल irc: //irc.debian.org#debian-mentors पर कुछ अनुरक्षकों के साथ बात की है, ठीक उसी बात के लिए पूछ रहा है, और आम सहमति थी:
समाधान # 1:
एक कोडबस के रूप में अपनी स्रोत फ़ाइलों की प्रतिलिपि बनाकर अपने पैकेज में निर्भरता को एकीकृत करना बहुत पर आधारित है। यह एक पैकेजिंग प्रणाली के उद्देश्य को पराजित करेगा जो निर्भरता, अद्यतन, संस्करण आदि को संभालता है।
समाधान # 3:
बाइनरी स्थापित करते समय गैर-डेबियन पैकेजों को फ्लाई पर डाउनलोड करना ( .deb
) एक गंभीर सुरक्षा जोखिम है, निश्चित रूप से नहीं-नहीं। आप भी अर्क को हटाकर निर्भरता का निरीक्षण नहीं कर पाएंगे deb
, क्योंकि उन्हें डाउनलोड और इंस्टॉल समय पर स्थापित किया गया है। यह एक दृष्टिकोण है जो पूरी तरह से रिपॉजिटरी सिस्टम को बायपास करता है। कोई भी संबंधित उपयोगकर्ता एक पैकेज से खुश नहीं होगा, जो पर्दे के पीछे (और जैसा कि root
, याद रखें!), अविश्वसनीय स्रोतों से अतिरिक्त अविश्वसनीय सॉफ़्टवेयर डाउनलोड करता है। हां, जिसे आपके मामले में DEBIAN/postinst
(या preinst
) जारी करने और wget
(या, आपके मामले में ) जारी करने की आवश्यकता होगीpip install
), और वह फ्लैश, ओरेकल जावा, स्टीम और अन्य द्वारा लिया गया दृष्टिकोण है। लेकिन वह मालिकाना, बंद स्रोत सॉफ्टवेयर है, इसलिए उनकी सुरक्षा वैसे भी नहीं है।
समाधान # 1.5:
आपने इसका उल्लेख नहीं किया है, लेकिन आप "बाइनरी" पैकेज ( ) बनाते समय PyPi से डाउनलोड करके, केवल स्रोत समय (यानी, स्रोत पैकेज .orig.tar.gz
, में .debian.tar.gz
, .dsc
त्रय) पर निर्भरता को एकीकृत कर सकते हैं .deb
। के लिए निर्देश pip install
में जाना जाएगा debian/rules
( debian
बाइनरी पैकेज के विपरीत, लोअरकेस को नोटिस करें ), और जब आप जारी करते हैं debuild
या निष्पादित किया जाएगा dpkg-buildpackage
।
यह # 1 और # 3 के बीच का मध्य-मैदान है। यह # 3 के कुछ मुद्दों को कम करता है (लेकिन हल नहीं करता है): कम से कम आप अंतिम उत्पाद का निरीक्षण कर सकते हैं, और .deb
इंस्टॉल समय पर इंटरनेट एक्सेस की आवश्यकता नहीं होगी। सभी जोखिम और बोझ को अंतिम उपयोगकर्ता से पैकेज अनुरक्षक में स्थानांतरित किया जाता है। लेकिन, # 1 जैसी ही समस्याएं हैं, क्योंकि यह अधिकांश पैकेजिंग सिस्टम इन्फ्रास्ट्रक्चर को बायपास करता है। Afterall, हैंडलिंग निर्भरताएँ (संस्करण, अद्यतन, आवश्यकताएँ, संघर्ष) क्यों dpkg
/ apt
पहली जगह में बनाया गया था! :)
समाधान # 2:
एक सच्चे सही रास्ता ™ । आप अपनी निर्भरता के लिए डेबियन पैकेज बनाते हैं, उन्हें अपने पैकेज में आवश्यकताओं के रूप में सूचीबद्ध करते हैं, .debs
या सभी या स्रोत पैकेजों को शिप करते हैं।
वहां से, आपके पास कई विकल्प हैं:
डेबियन को शामिल करने के लिए, अपने सॉफ्टवेयर और उसकी निर्भरता दोनों को स्रोत पैकेज सबमिट करें। यदि स्वीकार किया जाता है, तो वे स्वचालित रूप से सभी डेबियन उपयोगकर्ताओं के लिए उपलब्ध होंगे, जिसमें उबंटू जैसे सभी डेरिवेटिव शामिल हैं।
लॉन्चपैड में स्रोत पैकेज अपलोड करें , इस प्रकार एक पीपीए बनाते हुए कि कोई भी उबंटू उपयोगकर्ता (और लिनक्स मिंट की तरह इसका डेरिवेटिव) आसानी से जोड़ या स्थापित कर सकता है
अपनी वेबसाइट में अपने डेबियन रिपॉजिटरी को होस्ट करें, कि किसी भी डेबियन-आधारित सिस्टम के उपयोगकर्ता उनके साथ जोड़ सकते हैं /etc/apt/sources.list.d
और apt
डाउनलोड करने, स्थापित करने और अद्यतन रखने के लिए बुनियादी ढांचे का उपयोग कर सकते हैं, (ऊपर की तरह!)
.deb
प्रत्यक्ष डाउनलोड और स्थापित करने के लिए फ़ाइलों को होस्ट करें । कोई apt
या स्वचालित अपडेट शामिल नहीं है ।
कैसे अपने PyPi निर्भरता (और अपने अजगर सॉफ्टवेयर भी!) पैकेज के लिए के रूप में , वहाँ कई उपकरण और संदर्भ हैं जो प्रक्रिया को आसान बनाते हैं:
और कई उपयोगी संदर्भ:
मदद की ज़रूरत है? उन लोगों की जाँच करें: