गैर ubuntu पैकेज के लिए समर्थन का समर्थन करें


13

मैं अब तक एक सप्ताह के लिए ऐपॉर्ट और इसके उपयोग के बारे में पढ़ रहा हूं। लेकिन नीचे की बातों को समझ नहीं सका।

परिदृश्य:

मैंने एक एप्लिकेशन विकसित किया है और इसे पैक किया है। और उसका नाम है MyApp.deb। बाइनरी पैकेज नाम है MyApp। अनुप्रयोग पथ में स्थापित है /opt/myapplication/bin/MyApp

आवश्यकता:

  1. जब मेरा एप्लिकेशन क्रैश हो जाता है, तो मैं कोर डंप इकट्ठा करने में सक्षम होना चाहता हूं।
  2. प्रत्येक बाद की दुर्घटना पर, उसे एक नया क्रैश बनाना होगा, लेकिन मौजूदा को अधिलेखित नहीं करना चाहिए। वर्तमान समय के टिकट के साथ ऑटो का नाम बदलने जैसे कुछ, मेरी मदद करेंगे।
  3. जब मैं एक ग्राहक मशीन पर अपना एप्लिकेशन इंस्टॉल करता हूं, तो मेरे इंस्टॉलर को अपने सिस्टम के विस्तृत मापदंडों को संशोधित नहीं करना चाहिए। उदाहरण के लिए कहें, तो मुझे उसकी कोर फाइल पीढ़ी का पैटर्न नहीं बदलना चाहिए, क्योंकि उपयोगकर्ता / ग्राहक को मेरे आवेदन से नफरत हो सकती है क्योंकि मैं उसकी सहमति के बिना उसके सिस्टम मापदंडों को बदल दूंगा।
  4. मैं कोर फाइल जनरेशन के रास्ते से ठीक हूं। या तो वर्तमान निर्देशिका या/var/crash

चीजें जो मैंने अब तक खोजी हैं:

Apport एक अच्छी उपयोगिता है जो कोर फ़ाइल पीढ़ियों को सक्षम बनाता है। /proc/sys/kernel/core_patternI का उपयोग करके मैं कोर फाइलों को प्रारूपित कर सकता हूं। यह कोर फ़ाइलों को पूर्वनिर्धारित निर्देशिका में रीडायरेक्ट करने के लिए लचीलापन प्रदान करता है, कोर फाइलों को पिड के साथ नाम देता है, फ़ाइल पथ पैटर्न को जोड़ा जाता है या इसके लिए पूर्व-समाप्त होता है, आदि .. गैर उबंटू पैकेजों के लिए, मुझे कोर डंप (रिपोर्ट) उत्पन्न करने के लिए हुक लिखना होगा। । रिपोर्ट एकत्रित करने के बाद उसे अपलोड करें।

चीजें जो मुझे समझ में नहीं आती हैं:

  1. क्या मैं जिसको देख रहा हूँ, उसे स्वीकार करें ?? मेरा मतलब है कि यह मेरा उद्देश्य पर्याप्त है? या मुझे कुछ और देखना चाहिए?
  2. मेरा आवेदन किस प्रकार के पैकेज के अंतर्गत आता है? क्या मैं इसे गैर-उबंटु कहता हूं? तीसरा भाग? यह क्या है? मैं दस्तावेजों में विभिन्न शब्दावली देखता हूं?
  3. जैसा कि मैंने उल्लेख किया है, से MyAppचलता है /opt/myapplication/bin/MyApp, तो कोर फाइलें कहाँ से उत्पन्न होंगी? वर्तमान dir या /var/crash? क्या Apport दुर्घटनाओं का पता लगाता है /opt? क्या इसकी व्याख्या करता है?
  4. महत्वपूर्ण प्रश्न: यदि मैंने एप्लिकेशन विकसित किया है और यदि Apport उबंटू रिपॉजिटरी को रिपोर्ट अपलोड करता है, तो इसका कोई मतलब नहीं है। तो मैं रिपोर्ट भेजने के लिए Apport को कैसे बता सकता हूँ।
  5. मुझे यह त्रुटि मिली executable does not belong to a package, ignoring:। तो मैं क्या गलत हूं?
  6. अपने पैकेज को पहचानने के लिए, क्या मुझे इसे स्रोत पैकेज बनाने की आवश्यकता है? क्या यह अनिवार्य है? मैं सिर्फ एक बाइनरी पैकेज बनाना चाहता हूं?
  7. मैंने उन दस्तावेजों में भी कहीं देखा है जिन्हें Apport पहचानता है:
    1. उबटन पैकेज या
    2. लॉन्चपैड एप्लिकेशन लेकिन मेरा आवेदन इनमें से कुछ भी नहीं है। तो वर्तमान परिदृश्य में Apport मेरी मदद कैसे करता है?

अभी Apport की सीमा में से एक - यह ubuntu रिपॉजिटरी में एक पैकेज या कम से कम लॉन्चपैड पर एक प्रोजेक्ट होना है। क्या बाद वाला आपके लिए एक विकल्प है?
jokerdino

मेरे लम्बे प्रश्न के लिए समय पर उत्तर और स्पष्टता के साथ उत्तर देने के लिए धन्यवाद। BTW, मैं अपने पिछले पोस्ट में उल्लेख करने से चूक गया, कि मेरा आवेदन मालिकाना है। हम ubuntu रिपॉजिटरी पर हमारे आवेदन की मेजबानी करने की योजना बना रहे हैं। लेकिन अब से कुछ महीने हो सकते हैं। तब तक मुझे कोर फ़ाइलों को मैन्युअल रूप से प्रबंधित करना होगा।
संदीप

आवेदन किस भाषा में लिखा जाता है? इसके अलावा Apport पैकेज हुक लिखने के लिए आयोजित एक वर्ग की जाँच करें
jokerdino

C ++ में लिखा गया ऐप। लिंक से निम्नलिखित पंक्तियाँ मुझे भ्रमित करती हैं "<openweek4> QUESTION: 3rd पार्टी एप्लिकेशन के साथ हुक काम करेगा। Openweek4: मैं वास्तव में उस प्रश्न के बारे में निश्चित नहीं हूं। यदि आप ubuntuone- क्लाइंट हुक को देखते हैं - बग रिपोर्ट किए जाते हैं। लॉन्चपैड के बारे में लेकिन ubuntuone प्रोजेक्ट के बारे में। इसलिए यह बहुत अच्छी तरह से संभव हो सकता है। हालांकि, एपॉर्ट को उपयुक्त बग ट्रैकिंग सिस्टम के साथ संवाद करने में सक्षम होना होगा। "
संदीप

लेखक का कहना है, यह संभव हो सकता है कि 3 पार्टी अनुप्रयोगों के लिए ऐपॉर्ट का उपयोग करने के लिए रिपोर्ट प्राप्त करने के लिए तब तक किया जा सकता है जब तक कि ऐपॉर्ट और तीसरे पैटी एप्लिकेशन के बग ट्रैकिंग सिस्टम के बीच एक संचार स्थापित न हो जाए। यह कैसे हासिल किया जा सकता है? यदि यह हासिल किया जा सकता है, तो मुझे ubuntu repo या लॉन्चपैड के साथ पंजीकृत होने के लिए मेरे आवेदन की प्रतीक्षा नहीं करनी चाहिए।
संदीप

जवाबों:


2
  1. यह करीब दिखता है, लेकिन हो सकता है कि आपको क्या चाहिए। Apport स्वचालित रूप से / proc / sys / कर्नेल / core_pattern बदलता है। तो अगर वह बदला नहीं जा सकता है, तो आप भाग्य से बहुत बाहर हैं। दूसरी ओर, ऐप्पोर्ट डिफ़ॉल्ट उबंटू इंस्टॉल में है, इसलिए व्यावहारिक रूप से उबंटू का उपयोग करने वाले सभी के पास पहले से ही वह पैरामीटर है जो इसके द्वारा बदल दिया गया है। मैं किसी विशेष ऐप से सबसे हाल की दुर्घटना से अधिक रखने के लिए ऐपर्ट को बताने के किसी भी तरीके से अवगत नहीं हूं, लेकिन जब तक प्रत्येक दुर्घटना अपलोड की जाती है, तब तक यह कोई समस्या नहीं है।
  2. मैं इसे तृतीय-पक्ष के रूप में संदर्भित करूंगा।
  3. एप्रोर्ट / ऑप्ट में स्थापित निष्पादन योग्य का समर्थन करता है। आपको एक हुक / ऑप्ट / पथ / में / अपने / ऐप / शेयर / एपॉर्ट / पैकेज-हुक प्रदान करने की आवश्यकता होगी।
  4. आप अपने पैकेज के लिए पैकेज-हुक में एक कस्टम क्रैश डेटाबेस सेट कर सकते हैं। लेकिन अगर आपका क्रैश डेटाबेस डिबग या लॉन्चपैड की तरह काम नहीं करता है, तो आपको एक कस्टम क्रैश डेटाबेस कनेक्टर कार्यान्वयन बनाने की भी आवश्यकता होगी, जो ऐसा नहीं दिखता है कि यह / ऑप्ट के बाहर एक पायथन फ़ाइल स्थापित किए बिना किया जा सकता है।
  5. निष्पादन योग्य को dpkg द्वारा स्थापित करने की आवश्यकता है, जिसका अर्थ है कि आपको इसे .deb फ़ाइल में पैकेज करने की आवश्यकता है।
  6. बाइनरी पैकेज बनाने के लिए आपको एक स्रोत पैकेज बनाना होगा, क्योंकि बाइनरी पैकेज स्रोत पैकेजों से बनाए जाते हैं। आपको स्रोत पैकेज वितरित करने की आवश्यकता नहीं है।
  7. Apport एक .deb फ़ाइल के रूप में पैक की गई किसी भी चीज़ के साथ काम करता है।

ऐसा लगता है कि यह एक बहुत उपयोगी उत्तर हो सकता है, लेकिन यह स्पष्टीकरण में कई अंतराल छोड़ देता है: "हुक प्रदान करता है" क्या होता है? "डीबग या लॉन्चपैड जैसे कार्य" का क्या मतलब है? कृपया रेफरी को संकेत?
BobDoolittle
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.