मैं एक ऐसा पैकेज बनाने में सक्षम होना चाहता हूं जिसमें कोई कोड या प्रोग्राम स्वयं न हों, बल्कि एक कंप्यूटर पर रिपॉजिटरी में मौजूद अन्य पैकेजों को स्थापित करता है, जैसे कि ubuntu-restricted-extras
पैकेज कैसे करता है?
मैं एक ऐसा पैकेज बनाने में सक्षम होना चाहता हूं जिसमें कोई कोड या प्रोग्राम स्वयं न हों, बल्कि एक कंप्यूटर पर रिपॉजिटरी में मौजूद अन्य पैकेजों को स्थापित करता है, जैसे कि ubuntu-restricted-extras
पैकेज कैसे करता है?
जवाबों:
इस तरह का एक मेटा-पैकेज बनाया जा सकता है, जिसे एक टूल कहा जाता है, equivs
जो सिर्फ निर्भरता की जानकारी के साथ एक पैकेज बनाएगा।
सबसे पहले, एक निर्देशिका बनाएँ:
mkdir my-metapackage
cd my-metapackage/
अब कार्यक्रम चलाएं:
equivs-control ns-control
यह नामक एक फाइल बनाएगा ns-control
, इस फाइल को अपने टेक्स्ट एडिटर से खोलें। आपके द्वारा उत्पन्न की जाने वाली नियंत्रण फ़ाइल में आपके द्वारा इंस्टॉल किए गए पैकेजों पर निर्भर करने के लिए इसकी Depends
या Recommends
लाइनें संशोधित होनी चाहिए :
Section: misc
Priority: optional
Standards-Version: 3.9.1
Package: my-metapackage
Version: 1.0
Depends: openssh-server, gedit
Description: This package installes an ssh server and a text editor
The Long description of this package ends with a newline!
(सिर्फ एक उदाहरण, आपको अधिक जानकारी शामिल करनी चाहिए)
और अंत में, रन करके पैकेज का निर्माण करें
equivs-build ns-control
आपके पैकेज पर स्थित है my-metapackage/my-metapackage_1.0_all.deb
।
यदि आप एक स्रोत पैकेज भी बनाना चाहते हैं, तो --full
विकल्प को पास किया जा सकता है equivs-build
, जैसे equivs-build --full ns-control
। यह debuild का उपयोग करेगा और .dsc & .tar.gz फ़ाइलें भी बनाएगा।
एक स्रोत .changes फ़ाइल बनाने के लिए जिसे आप PPA पर अपलोड कर सकते हैं, स्रोत पैकेज को निकाल सकते हैं और बना सकते हैं
dpkg-source -x my-metapackage_1.0.dsc
cd my-metapackage-1.0
debuild -S
यदि आपके द्वारा ns-control में सेट किया गया Maintainer आपकी GPG कुंजी से मेल खाता है, तो आपको अपने PPA पर विवाद करने के लिए my-metapackage_1.0_source.changes फ़ाइल का निर्माण और हस्ताक्षर करना चाहिए।
~/.devscripts
फ़ाइल है और विशेष रूप से भक्ति की फाइल में उपयोग करने के लिए एक अलग GPG कुंजी को परिभाषित करता है, तो यह dpkg / debuild प्रक्रिया को पूरा करेगा और इसे में निर्दिष्ट विशिष्ट GPG कुंजी का उपयोग .devscripts
बस अपने जवाब में अंतिम वाक्य के लिए एक उल्लेखनीय बिंदु के रूप
Depends:
रखना स्थापना को अच्छा बनाता है अगर और केवल अगर पैकेज हैं; यदि वे मेरी मशीन पर नहीं हैं तो यह उन्हें स्थापित नहीं करता है। उन्हें स्थापित करने के लिए, मैंने Provides
इसके बजाय उपयोग किया और यह एक आकर्षण की तरह काम करता है। मेरा कोड देखें (बस इसे बदल दिया): github.com/palladius/debian-packages/blob/master/…