यह वास्तव में उससे कहीं अधिक जटिल है। डेबियन पैकेज के पीछे विचार यह है कि उनमें एक पृष्ठ को बल्ब करने के लिए आवश्यक सभी जानकारी होती है। आमतौर पर, स्रोत को debian
निर्देशिका शामिल करने के लिए संशोधित किया गया है जिसमें control
फ़ाइल शामिल है जो उस पैकेज की निर्भरताओं और अन्य संकुलों का वर्णन करती है जो यह इंटरैक्ट करता है (उदाहरण के लिए, ब्रेक, प्रतिस्थापन, आभासी पैकेज प्रदान करता है)। एक rules
फ़ाइल बताती है कि पैकेज कैसे बनाएं और इंस्टॉल करें। पैकेजिंग के विवरण भी हैं क्योंकि एकल स्रोत पैकेज कई बाइनरी पैकेज (उदा।, foo-utils
, libfoo0
, libfoo-dev
) बन सकता है। debuild
वास्तव में इस जानकारी को पढ़ता है, संकलन करता है, और बाइनरी संकुल का उत्पादन करता है। एक subtlety: अगर foo
libbar-dev
का उपयोग करता है, तो मैं वास्तव में libbar
बाइनरी पैकेज का उपयोग करने वाले संस्करण का वास्तव में नहीं जानता/देखभाल कर सकता हूं। pbuilder
एक स्वच्छ वातावरण में debuild
चलाता है इसलिए उन चीजों के खिलाफ संकलन करने का कोई मौका नहीं है जिन्हें आपने स्पष्ट रूप से निर्दिष्ट नहीं किया है।
विवरण के लिए Debian New Maintainers' Guide से परामर्श लें।
महान जवाब! एक और प्रश्न। उदाहरण में आपने यहां दिया है, हमारे पास मूल कोड (अपस्ट्रीम) है और रखरखाव परिवर्तन के बाद diff है। जब मूल कोड का नया संस्करण "debianized" होने वाला है, तो रखरखाव उनके परिवर्तनों पर कैसे ट्रैक रखता है? वे पिछले डीब रिलीज से स्रोत कोड के नए संस्करण में diff विलय? क्या वे कुछ सीवीएस इस्तेमाल करते हैं? –
एक नई रिलीज के बाद, वे आम तौर पर पुरानी '.diff.gz. में पैच को फिर से लागू करेंगे। अगर कुछ तोड़ता है तो वे खुदाई करेंगे। कुछ रखरखाव 'गिट' या' रजाई 'या अन्य टूल्स का उपयोग कर सकते हैं जिन्हें मैं नहीं जानता, लेकिन जहां तक मुझे पता है, यह वास्तव में पैकेज रखरखाव पर निर्भर है। – andrewdotn
आपके उत्तर में से कुछ लिंक टूटे हैं। –