मैं एक कामकाजी कार्यक्रम के लिए पीपीए कैसे बना सकता हूं?


36

मान लेते हैं कि मेरे पास C, C ++ या पायथन में लिखा गया एक काम करने वाला एप्लिकेशन है। मैं एक लॉन्चपैड पीपीए बनाना चाहता हूं ताकि अन्य इसे पैकेज से आसानी से स्थापित कर सकें। कृपया इसे शुरू से अंत तक करने के लिए कदम से कदम निर्देश दें। (या ऐसा लिंक प्रदान करें जो ऐसा करता हो;)

  • क्या प्रोग्रामिंग भाषा मायने रखती है? (क्या यह बैश स्क्रिप्ट हो सकती है?)
  • क्या मुझे अपने निर्माण में कुछ भी जोड़ने की आवश्यकता है?
  • बिल्ड को स्वयं को कहां स्थापित करना चाहिए?
  • मैं निर्भरताओं को कैसे परिभाषित करूं?
  • मैं निर्भरता का उपयोग कैसे करूँ?
  • मैं कैसे बना सकता हूँ?
  • लॉन्चपैड पर अपलोड करने से पहले मुझे क्या करना होगा?

1
मैं यह सवाल इसलिए पूछ रहा हूं क्योंकि मैं कभी-कभी सिफारिश करता हूं कि FLOSS एक PPA बनाने के लिए प्रोजेक्ट करता है (इसलिए मैं उन्हें आसानी से स्थापित कर सकता हूं :) - मैं उन्हें पूरी तरह से संसाधन की ओर संकेत कर सकता हूं या खुद ऐसा करने में सक्षम होना चाहता हूं।
david.libremone 12

जवाबों:


33

यह एक बहुत व्यापक प्रश्न है। मैं के रूप में ज्यादा के रूप में मैं कर सकते हैं जवाब देने की कोशिश करेंगे, लेकिन यह निश्चित रूप से नहीं होगा एक कदम-दर-कदम अनुदेश हो। ऐसा इसलिए है क्योंकि पैकेज बनाने के लिए कोई चरण-दर-चरण एल्गोरिदम नहीं है। जिस तरह से आप करेंगे वह कई कारकों पर निर्भर करता है, ज्यादातर पैकेज के प्रकार (आवेदन, पुस्तकालय), स्रोत की संरचना और कई विवरणों पर।

सौभाग्य से, http://packaging.ubuntu.com पर एक संपूर्ण मार्गदर्शिका है

मैं पूरी प्रक्रिया को समझने में आपकी थोड़ी मदद करने की कोशिश करूँगा, इसलिए जब आप इससे थोड़ा अधिक परिचित होंगे। पैकेजिंग गाइड में अतिरिक्त मदद के लिए संसाधन शामिल हैं।


सबसे पहले आपको यह महसूस करना चाहिए कि एक पैकेज (.deb फ़ाइल) पीपीए बनाने से एक अलग प्रक्रिया है। PPA बनाना आपके लॉन्चपैड की प्रोफ़ाइल पर जाने और "नया PPA बनाएँ" लिंक पर क्लिक करने का विषय है। बस इतना ही। यह बनाया गया है, यह काम करता है, लेकिन यह खाली है। पैकेज अपलोड करने के लिए आपको पहले एक बनाना होगा। लेकिन पहले मैं आपके कुछ मामूली सवालों के जवाब दूं।

  • प्रोग्रामिंग भाषा बिल्कुल भी मायने नहीं रखती है । यह एक C ++ एप्लिकेशन, बैश स्क्रिप्ट, ब्रेनफुक हैलो वर्ल्ड, एक एकल README फाइल या शांत तस्वीरों का एक सेट हो सकता है। पैकेज में कोई भी फ़ाइल हो सकती है। स्थापना के दौरान पैकेज आपके फाइलसिस्टम के रूट ("/") में निकाला जाता है। इस तरह वे कुछ फाइलों को बायनेरिज़ फ़ोल्डर में रख सकते हैं, कुछ वॉलपेपर को गनोम डिफ़ॉल्ट सेट में जोड़ सकते हैं, या उपयोगकर्ता को बैश स्क्रिप्ट प्रदान कर सकते हैं।
  • आप करते स्रोत के लिए कुछ जोड़ने की जरूरत है। यह "डेबियन" नामक एक शीर्ष-स्तरीय निर्देशिका होनी चाहिए। पैकेज विवरण के साथ कुछ फाइलें होंगी - उनका उपयोग यह परिभाषित करने के लिए किया जाएगा कि पैकेज किस प्रकार का है, आदि।
  • निर्भरता इस फ़ाइलों में से एक (अन्य विवरण के बीच) में सूचीबद्ध हैं। उन्हें कहां से लाएं? वे केवल अन्य पैकेज हैं जो आपके एप्लिकेशन का उपयोग करते हैं। एप्लिकेशन के डेवलपर को पता होगा कि उनके कार्यक्रम के लिए किन पुस्तकालयों और संसाधनों की आवश्यकता है, इसलिए उन्हें सूचीबद्ध करने में ज्यादा परेशानी नहीं होनी चाहिए।
    • पैकेज (पाइलडर) बनाने के लिए उपयोग किए जाने वाले कुछ उपकरण निर्भरता में स्वचालित रूप से भर सकते हैं, शायद यह निर्धारित करके कि आपके ऐप को संकलन के दौरान क्या आवश्यक है।
  • AutoTools का उपयोग करने के लिए भी अत्यधिक अनुशंसा की जाती है । यह दूसरी चीज है जिसे आपको जोड़ने की आवश्यकता हो सकती है, लेकिन शायद लगभग हर सॉफ्टवेयर पहले से ही इनका उपयोग करता है। ऑटोटूलस अत्यंत सहायक कार्यक्रमों का एक सेट है - कुछ को नाम देने के लिए स्वचालित, ऑटोकॉन्फ़ और ऑटोस्कोन। जब आप प्रसिद्ध के साथ एक प्रोग्राम संकलित और स्थापित करते हैं ।/configure && make && मेक इनस्टॉल करें तब ऑटोटूल का उपयोग स्रोत के साथ स्वचालित रूप से निपटने, स्रोत के साथ शामिल अन्य संसाधनों को तैयार करने के लिए किया जाता है, और संकलन के परिणाम को उचित स्थान पर निकालने के लिए (आपके प्रश्न का उत्तर देने के लिए: निर्माण अलग-अलग स्थानों पर निकालेगा।) बायनेरिज़ / usr / लोकल / बिन, डॉक्स / usr / लोकल / शेयर / डॉक्स आदि पर जाएंगे। इसके अलावा, एक पैकेज से एक बायनेरिज़ भी अलग-अलग जगहों पर जाएगी, बायनेरिज़ को / usr / bin कैसे डील करें। इस जटिल निर्देशिका लेआउट के साथ? AutoTools का उपयोग करें - यह स्वचालित रूप से इसके बारे में परवाह करेगा, और यही कारण है कि वे इतने उपयोगी हैं)।

-Deb पैकेज बनाना वास्तव में एक जटिल प्रक्रिया के रूप में देखा जा सकता है, लेकिन यह उतना मुश्किल नहीं है। मैं आपको पैकेज बनाने के लिए आधिकारिक उबंटू गाइड की अत्यधिक अनुशंसा करता हूं: http://packaging.ubuntu.com

यह बहुत बड़ा है, लेकिन आप देखेंगे कि आप शायद उस पाठ के अधिकांश हिस्सों को छोड़ सकते हैं (यह निर्भर करता है कि आप किस पैकेज का निर्माण करने जा रहे हैं)। असल में, पैकेजिंग प्रक्रिया में इन भागों होते हैं (सभी को स्पष्ट रूप से गाइड में समझाया गया है) :

  1. पैकेज बनाने के लिए उपयोग किए जाने वाले कुछ टूल का उपयोग करें।
  2. स्रोत प्राप्त करें
  3. ./Debian निर्देशिका बनाएं और इसे आवश्यक डेटा भरें
  4. डेबिडिल के साथ पैकेज का निर्माण करें [जिसमें * .dsc, * _source.build, * _source.changes सहित फ़ाइलों का एक सेट बनाना चाहिए, जो पैकेज के बारे में डेटा के लिए जिम्मेदार हैं, और इसके साथ कैसे व्यवहार करें (आप भी करेंगे) a source .tar.gz)]
  5. परीक्षण करें कि क्या सब कुछ स्थानीय रूप से चलने से काम करता है (यह ऊपर वर्णित इन सभी फाइलों को ले जाएगा और स्वतः .Tools की मदद से स्रोत का निर्माण करके, उन्हें .deb पैकेज में संयोजित करने का प्रयास करें - यही कारण है कि वे पैकेजिंग के लिए महत्वपूर्ण हैं [स्पष्ट रूप से बोलना - नहीं - आप उनके बिना या कुछ विकल्पों के साथ मिल सकते हैं, लेकिन यह सबसे आसान तरीका है, और अन्य को कुछ उन्नत सेटअप की आवश्यकता हो सकती है, जैसा कि आपको बिल्डर को स्रोत बनाने के लिए निर्देश का उपयोग करने की आवश्यकता होगी (उपयोग ./debian/rules फ़ाइल। ) - लेकिन यह शुरुआती के लिए नहीं है] ) - यदि आप सिर्फ एक .deb पैकेज प्राप्त करना चाहते हैं, तो यह हो गया है।

अब आपको इसे अपने PPA पर अपलोड करना होगा, जिसे इस सहायता पृष्ठ पर समझाया गया है: https://help.launchpad.net/Packaging/PPA/Uploading

  1. लॉन्चपैड में इन फ़ाइलों को अपलोड करने के लिए dput का उपयोग करें
  2. लॉन्चपैड अपने कंप्यूटर पर पाइलडर चलाएगा , और एक स्वच्छ वातावरण में पैकेज उत्पन्न करेगा
  3. अंत में, पैकेज पीपीए में दिखाई देने चाहिए।

जैसा कि आप देख रहे हैं कि पीपीए बनाना सीधा नहीं हैलेकिन डरो मत , यह भी मुश्किल नहीं है। इसके अलावा, मैं आपको डेवलपर्स को पीपीए का उपयोग करने के लिए प्रोत्साहित नहीं करने की सलाह देता हूं, क्योंकि शायद वे आपकी बात नहीं सुनेंगे, क्योंकि उन्हें कुछ अतिरिक्त काम करने की आवश्यकता होगी (और अगर वे चाहते थे कि वे पहले से ही ऐसा कर सकते हैं), लेकिन आप उबंटू डेवलपर्स और पूरे समुदाय का समर्थन करने और उन्हें आपके द्वारा तैयार किए गए पैकेज के साथ प्रदान करने की कोशिश करना चाहते हैं :)

मैं आपको पैकेज बनाने के साथ शुभकामनाएं देता हूं, आशा है कि आपको मेरा उत्तर उपयोगी लगेगा :)

आपका दोस्त, राफेल Cie .lak


आप अपने स्वयं के बुनियादी ढांचे पर होस्ट किए गए एक गैर-लॉन्चपैड पीपीए कैसे बना सकते हैं? क्या यह उचित निर्देशिका संरचना के साथ एक साधारण वेब सर्वर है?
प्रो। मोरियार्टी

क्या brainf * ck उदाहरण वास्तव में आवश्यक था?
कैमडेन

5
  • इससे पहले कि आप अपना पैकेज अपलोड कर सकें, आपको इसे .debपैकेजिंग के लिए सेट करना होगा , उबंटू पैकेजिंगगाइड देखें

  • एक बार जब आप अपने सॉफ़्टवेयर के लिए एक पैकेज बना सकते हैं, तो लॉन्चपैड का पीपीए प्रलेखन देखें । यह आपके पैकेज को अपलोड करने के लिए पीपीए निर्माण से मार्गदर्शन करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.