Ubuntu: वे वेनिला स्रोतों के लिए क्या कर रहे हैं?


12

अगर मैं ग़लत हूं तो मेरी गलती सुझाएं

जहां तक ​​मुझे पता है डिबियन / उबंटू / फेडोरा जैसे डिस्ट्रोस आमतौर पर पैकेज बनाने से पहले वेनिला स्रोत कोड को संशोधित करते हैं। इन बदलावों के पीछे क्या कारण है? क्या मूल स्रोत के साथ कोई समस्या है? मैं परिवर्तनों की सूची और किसी विशेष पैकेज में किए गए उन परिवर्तनों का कारण कैसे प्राप्त कर सकता हूं?

सहायता के लिए धन्यवाद!

जवाबों:


18
apt-get source package

आपको दो या तीन फाइलें मिलेंगी: "मूल" टारबॉल (कभी-कभी संशोधित, लेकिन शायद ही कभी ... केवल परिवर्तन अक्सर फ़ाइल नाम होता है - * .orig.tar.gz, * .diff के रूप में डेबियन बदलता है। .gz फ़ाइल, और कुछ मेटाडेटा। कभी-कभी .diff.gz फ़ाइल गायब हो जाती है: इसका मतलब है कि पैकेज केवल डेबियन / ubuntu के लिए बनाया गया है, कुछ बहुत ही विशिष्ट डिस्ट्रो काम को संभालने के लिए ... जैसे dakकि डेबियन संग्रह अपलोड करता है। फिर सभी कोड मूल टारबॉल में है।

कारण कई हैं: सॉफ़्टवेयर के लिए बग को ठीक करना (जब अपस्ट्रीम नहीं चाहता है), सॉफ़्टवेयर को डेबियन के लिए एड करना (फ़े एडजस्ट करने वाले फ़ाइल पथ)। डेबियन सभी पैकेजों को फाइलसिस्टम पदानुक्रम मानक का पालन करना चाहता है , और यह एक बहुत ही सामान्य समायोजन है।

मूल टारबॉल कभी-कभी पैकेजिंग मुद्दों के कारण बनाए गए अपस्ट्रीम के समान नहीं होता है। मुझे याद है कि एक कार्यक्रम को कई टारबॉल में वितरित किया गया था, जबकि उन्होंने केवल एक निष्पादन योग्य उत्पन्न किया था - डेबियन अनुरक्षक ने अपने स्वयं के "मूल" टारबॉल को टैरिड अपस्ट्रीम टारबॉल से बनाने का फैसला किया। दूसरा कारण यह है कि जब कभी-कभी डेबियन अनुचर पैकेज में कुछ बाइनरी फ़ाइल जोड़ने का फैसला करता है। .Diff.gz फ़ाइल के अंदर बायनेरिज़ डालना मुश्किल है, इसलिए मूल टारबॉल को संशोधित किया गया है (और यह आमतौर पर पैकेज के लिए प्रलेखन में स्पष्ट रूप से वर्णित है)।

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

ऐसा भी होता है कि कुछ सामग्री को लाइसेंस दिया जाता है ताकि आप उसका उपयोग कर सकें लेकिन वितरित न करें। आम तौर पर (फ़े के लिए msttcorefonts, flashplugin-nonfree) Debian पैकेज केवल एक पैकेज के लिए एक इंस्टॉलर किसी तरह का है, और कोई मूल सामग्री पैकेज के अंदर है।

pineपैकेज भी दिलचस्प है, क्योंकि संकलित रूपों को वितरित करने के लिए लाइसेंस मना करता है। इसलिए कोई pineबाइनरी पैकेज नहीं है, लेकिन pineस्रोत पैकेज है। आप इसे उपरोक्त आदेश का उपयोग करके डाउनलोड कर सकते हैं और अपने लिए एक डेबियन पैकेज में संकलित कर सकते हैं।


पाइन अब मूल लाइसेंसिंग मुद्दों के आसपास पाने के लिए अल्पाइन के रूप में विकसित किया जा रहा है - वॉशिंगटन.ड्यू
Theotherreceive

अभी भी pineपैकेज भंडार के अंदर है। लेकिन ठीक है, यह है कि कैसे लाइसेंसिंग मुद्दे चीजों को कठिन बनाते हैं।
लोरी

2

कारण शायद कई गुना हैं क्योंकि अनुरक्षक और पैकेज हैं। मुझे लगता है कि आमतौर पर वे सॉफ़्टवेयर को संशोधित करते हैं ताकि यह डिस्ट्रो में अन्य सॉफ़्टवेयर के साथ बेहतर रूप से एकीकृत हो या उन सुविधाओं को जोड़ने के लिए जो "आधिकारिक" संस्करण में नहीं हैं।

आप sudo apt-get source PACKAGENAMEकमांड लाइन पर टाइप करके स्रोत (और ubuntu-specific diffs) प्राप्त कर सकते हैं । यह वेनिला स्रोतों और पैकेज के अंतर को वर्तमान निर्देशिका में डाउनलोड करेगा। वे आमतौर पर स्रोत में कुछ टिप्पणियां भी शामिल करते हैं।


1

इस पर इस तरीके से विचार करें। यदि आपने प्रोग्राम को मूल स्रोत टारबॉल के माध्यम से स्थापित किया है ./configure; make; make install, तो आपको अभी भी कुछ काम करना है। आपको मेनू एंट्रीज बनानी होंगी, आपको कॉन्फिग फाइल्स सेट करनी होंगी, और ऐसे। आप देने के लिए हो सकता है ./configureएक --prefix। डिस्ट्रो मेंटेनर्स के बदलावों में इन सांसारिक कार्यों के स्वचालन से अधिक कुछ नहीं होता है।

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