मल्टी-आर्किटेक्चर पीपीए कैसे बनाएं और प्रशासन करें?


13

मेरे पास एक प्रोग्राम है जिसे हर ubuntu संस्करण के लिए पुन: स्थापित करने की आवश्यकता है।

वर्तमान में मैं इसे केवल वर्तमान वितरण के लिए उबंटू के पीपीए का उपयोग करके पैकेजिंग कर रहा हूं।

आखिरकार, मुझे पिछले ubuntu संस्करण के लिए पैकेज प्रदान करना होगा।

मुझे यकीन नहीं है कि इसे कैसे पूरा किया जाए।

उबंटू पीपीए सर्वर का निर्माण कैसे करता है - क्या यह केवल वितरण क्षेत्र को सबसे वर्तमान चेंजलॉग प्रविष्टि (डेबियन / चेंगलॉग फ़ाइल में) के लिए निर्धारित करता है कि किस वितरण के लिए पैकेज का निर्माण किया जाना चाहिए?

डेबियन विनिर्देश वितरण क्षेत्र में कई वितरण जोड़ने की अनुमति देता है। लेकिन यह मेरी मदद करने के लिए सीवन नहीं करता है।

कुछ ubuntu दस्तावेज़ों को वितरण नाम को संस्करण संख्या (डेबियन चेंजगॉग फ़ाइल में) को एन्कोड करने के बारे में बात करते हैं।

लेकिन व्यवहार में यह कैसे काम करता है? कार्यक्रम का एक नया संस्करण उपलब्ध है, फिर क्या? क्या मैं प्रत्येक वितरण के लिए एक नया चैंज एंट्री जोड़ता हूं और PPA बिल्डकांडर प्रत्येक वितरण के लिए स्वचालित रूप से नए पैकेजों का निर्माण करता है जो इसे डीप्यूट करने के बाद? या क्या पीपीए बिल्डर सिर्फ पहले चैंज एंट्री को देखता है?


1
मुझे वास्तव में इस प्रक्रिया में भी दिलचस्पी है!
मार्को Ceppi

जवाबों:


7

जाने का तरीका हर उबंटू संस्करण के लिए एक बार अपलोड करना है ।

लॉन्चपैड उबंटू संस्करणों के लिए पैकेज का निर्माण नहीं करेगा जो अब समर्थित नहीं हैं, और केवल उबंटू के एक विशिष्ट संस्करण के लिए पैकेज बनाते हैं। लक्षित संस्करण (जैसा कि आप पहले से ही जानते हैं) changelogफ़ाइल में निर्दिष्ट है, नवीनतम प्रविष्टि द्वारा!

याद रखें कि आपके प्रोग्राम जिस पैकेज पर निर्भर करते हैं, वह उबंटू के सभी संस्करणों में एक ही संस्करण पर उपलब्ध नहीं हो सकता है।

आप "मल्टी-आर्किटेक्चर" (आर्किटेक्चर = CUP प्रकार, उदाहरण के लिए। x86, LPIA, AMD64) के बारे में भी बात करते हैं क्योंकि अपलोड किए गए प्रत्येक पैकेज के लिए तब तक कोई फर्क नहीं पड़ता है जब तक Architecture: anyकि पैकेज परिभाषा ( debian/control) फ़ाइल में आपके पास सभी उपलब्ध आर्किटेक्चर के लिए निर्माण होता है , यह आपको पैकेज को अलग-अलग आर्किटेक्चर के लिए अलग-अलग पैकेजों पर निर्भर करने की अनुमति देता है (पैकेज को एक से अधिक बार परिभाषित करना)


10

लॉन्चपैड में वर्तमान में बीटा में एक नई सुविधा है जो आपको किसी भी अतिरिक्त काम के बिना एक ही बार में कई ubuntu संस्करणों के लिए अपना पैकेज बनाने की अनुमति देता है। तुम भी अपने आप हर दिन अपने पैकेज का निर्माण कर सकते हैं। https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted वैकल्पिक शब्द


1
यह दिलचस्प लगता है। मैं सीधे इसका उपयोग नहीं कर सकता, क्योंकि मैं रिपोजिटरी होस्टिंग के लिए bzr और न ही लॉन्चपैड का उपयोग नहीं कर रहा हूं (मैं मर्क्यूरियल का उपयोग कर रहा हूं)। परंतु! शायद लॉन्चपैड पर एक bzr रिपोजिटरी बनाना संभव है और मेरे मुख्य भंडार से नवीनतम परिवर्तनों को डंप करना, हर बार जब मैं एक नया पैकेज बिल्ड ट्रिगर करना चाहता हूं।
maxschlepzig

मैं कुछ भी कोड नहीं करता हूं जो अक्सर होता है और मैं इसके लिए उत्साहित हूं।
एपर्सन

@maxschlepzig लॉन्चपैड में अपने एचजी सामान को आयात करने के तरीके पर एक अलग सवाल पूछें और मैं इसका जवाब दूंगा।
जोर्ज कास्त्रो

6

नामकरण सम्मेलनों के संबंध में, मानक कुछ इस प्रकार है:

  • उबंटू के आधिकारिक संग्रह में समाप्त होने वाले पैकेज के लिए 1.0-0ubuntu1
  • 1.0-0ubuntu1 ~ lucidppa1 उस पैकेज के संस्करण के लिए जिसे आपने अपने पीपीए में ल्यूसिड के लिए रखा था
  • कर्म के लिए उस पैकेज के संस्करण के लिए 1.0-0ubuntu1 ~ karmicppa1

कारण यह है कि संस्करण क्षेत्र में एक ~ एक संस्करण संख्या के लिए "कुछ नहीं से कम" का प्रतिनिधित्व करता है। इसलिए अगर कोई आपके PPA को कर्मिक में जोड़ता है, तो उन्हें ~ karmicppa1 पैकेज मिलेगा। जब वे फिर ल्यूसिड में उन्नयन करते हैं (और आपके पीपीए को पढ़ते हैं), तो इसे ल्यूसिड पीपीए पैकेज से बदल दिया जाएगा। यदि आपका पैकेज फिर आधिकारिक संग्रह में जाता है, तो आपके पीपीए से दूर संक्रमण आसानी से हो जाएगा।

दूसरा फायदा यह है कि रिलीज़ को संस्करण क्षेत्र में रखने से यह स्पष्ट हो जाता है कि कौन-सी फाइलें रिलीज़ होती हैं (और प्रति रिलीज़ एक अपलोड करने के लिए आपको याद दिलाती हैं)। उदाहरण के लिए, अलग-अलग निर्भरता होने पर आपको प्रत्येक Ubuntu रिलीज़ के लिए अलग-अलग शाखाओं की भी आवश्यकता हो सकती है।


स्कॉट - क्या इस पर किसी प्रकार का प्रलेखन है?
बार्टोज़ राडाज़स्की

~ और सामान शायद कहीं अस्पष्ट लेबल है। बाकी मैं केवल अन्य डेवलपर्स के बीच मनाया गया सम्मेलन है, आधिकारिक दस्तावेज अभ्यास नहीं।
स्कॉट रिची

ठीक है, धन्यवाद, आपका सुझाया नामकरण सम्मेलन अच्छी तरह से काम करता है।
बार्टोज़ रैडाज़्स्की

मुझे यह जोड़ना चाहिए कि कभी-कभी यह ppa से पहले एक अतिरिक्त ~ डालने के लिए आगे बढ़ाया जाता है: 1.0-0ubuntu1 ~ karmic1 ~ ppa1 इसका कारण यह है कि कार्मिक के लिए एक आधिकारिक स्थिर रिलीज़ अपडेट 1.0-0ubuntu1 - karmic1 के रूप में जारी किया जा सकता है, और हम PPA संस्करण इससे कम होना चाहते हैं।
स्कॉट रिची

Freenode पर #launchpad में पूछना पड़ा, और जाहिरा तौर पर यह एक सोर्स पैकेज बिल्डिंग के तहत लॉन्चपैड विकी पर अर्ध-प्रलेखित है । इस सम्मेलन के बारे में जानकारी के लिए धन्यवाद, यह काफी उपयोगी है ^ _ ^
TrinitronX
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.