डेब्यू बनाम आरपीएम के पक्ष / विपक्ष क्या हैं?


171

जो भी कारणों के लिए, मैंने हमेशा RPM आधारित वितरण (Fedora, Centos और वर्तमान में OpenSUSE) का उपयोग किया है। मैंने अक्सर यह कहा है कि बहस आरपीएम से बेहतर है, लेकिन जब पूछा गया है, तो कभी भी एक सुसंगत जवाब नहीं मिल सका है (आमतौर पर इसके बजाय कुछ ईर्ष्यापूर्ण झुनझुनी और प्रचुर मात्रा में प्रचुर मात्रा में मिल जाता है)।

मैं समझता हूं कि कुछ ऐतिहासिक कारण हो सकते हैं, लेकिन दो अलग-अलग पैकेजिंग विधियों का उपयोग करते हुए आधुनिक वितरण के लिए, क्या कोई एक बनाम दूसरे की तकनीकी (या अन्य) योग्यता दे सकता है?

जवाबों:


86

एक पैकेज मेंटेनर के लिए मुख्य अंतर (मुझे लगता है कि डेबियन लिंगो में 'डेवलपर' होगा) जिस तरह से पैकेज मेटा-डेटा और साथ की स्क्रिप्ट आती है।

RPM की दुनिया में, आपके सभी पैकेज (RPM आपके बनाए हुए हैं) कुछ इस तरह से स्थित हैं ~/rpmbuild। नीचे, SPECआपकी कल्पना-फ़ाइलों के SOURCESलिए निर्देशिका है, स्रोत टारबॉल के लिए एक निर्देशिका है, RPMSऔर SRPMSनई बनाई गई RPMs और SRPMs में निर्देशिकाएं, और कुछ अन्य चीजें जो अभी प्रासंगिक नहीं हैं।

सब कुछ है कि RPM कैसे बनाया जाएगा के साथ क्या करना है युक्ति में है: क्या पैच लागू किया जाएगा, संभव पूर्व और बाद की स्क्रिप्ट, मेटा-डेटा, चैंज, सब कुछ। सभी स्रोत टारबॉल और आपके सभी पैकेजों के सभी पैच स्रोत में हैं।

अब, व्यक्तिगत रूप से, मुझे यह पसंद है कि सब कुछ कल्पना-फ़ाइल में चला जाता है, और यह कि युक्ति-फ़ाइल स्रोत टारबॉल से एक अलग इकाई है, लेकिन मैं SOURCES में सभी स्रोतों के बारे में अत्यधिक उत्साही नहीं हूं । IMHO, स्रोत बहुत जल्दी बंद हो जाते हैं और आप वहाँ क्या है का ट्रैक खो देते हैं। हालाँकि, राय अलग है।

RPM के लिए इसका इस्तेमाल करने के लिए महत्वपूर्ण है सही टाइमस्टैम्प अप करने के लिए नदी के ऊपर परियोजना विज्ञप्ति एक के रूप में एक ही टारबॉल,। आमतौर पर, इस नियम के कोई अपवाद नहीं हैं। डेबियन पैकेज को भी अपस्ट्रीम के समान टारबॉल की आवश्यकता होती है, हालांकि डेबियन पॉलिसी के लिए कुछ टारबॉल को रीपैकेज करने की आवश्यकता होती है (धन्यवाद, उमंग)।

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

इस दृष्टिकोण के बारे में मुझे जो (जैसा लगता है) वह तथ्य है कि सब कुछ एक ही निर्देशिका में समाहित है।

डेबियन दुनिया में, यह एक पैकेज में पैच को ले जाने के लिए थोड़ा अधिक स्वीकार किया जाता है जो ऊपर (अभी तक) नहीं हैं। आरपीएम दुनिया में (कम से कम रेड हैट डेरिवेटिव के बीच) यह पर आधारित है। "फेडोराप्रोजेक्ट: अपस्ट्रीम प्रोजेक्ट्स के करीब रहना" देखें ।

इसके अलावा, डेबियन के पास बड़ी मात्रा में स्क्रिप्ट हैं जो पैकेज बनाने के एक बड़े हिस्से को स्वचालित करने में सक्षम हैं। उदाहरण के लिए, एक सेटपूल के पायथन कार्यक्रम के एक - सरल - पैकेज का निर्माण, मेटा डेटा फ़ाइलों के एक जोड़े को बनाने और चलाने के रूप में सरल है debuild। उस ने कहा, RPM प्रारूप में इस तरह के पैकेज के लिए युक्ति-फ़ाइल बहुत छोटी होगी और RPM दुनिया में भी, इन दिनों बहुत सारा सामान स्वचालित है।


9
आपको डेबियन पैकेजिंग पर सही करने के लिए, debianनिर्देशिका उस निर्देशिका में मौजूद है जिसमें अपस्ट्रीम स्रोत को निकाला गया था, और डेबियन एक प्राचीन अपस्ट्रीम स्रोत टैरबॉल की अवधारणा को बहुत महत्व देता है। जब एक स्रोत पैकेज बनाया जाता है, तो तीन (देशी पैकेज के लिए दो) फाइलें होती हैं, जिन्हें एक साथ स्रोत पैकेज कहा जाता है: अपस्ट्रीम टारबॉल (अधिमानतः प्राचीन, डेबियन नीति के लिए कुछ परियोजनाओं को फिर से तैयार करने की आवश्यकता होती है), के लिए डीयर डायर का एक टारबॉल नया 3.0 प्रारूप, (पुराने 1.0 प्रारूप के लिए एक भिन्न) और .dsc।
उमंग १

8
डेबियन निर्देशिका अपस्ट्रीम टारबॉल में नहीं जाती है, यह स्रोत पैकेज .diff.gzकी .debian.tar.gzफाइलों में या अंदर बनी रहती है , हालांकि स्रोत पैकेज के बाहर होने पर debianनिर्देशिका स्रोत ट्री के अंदर होती है। BTW: जब पॉलिसी को रीपैकेजिंग की आवश्यकता नहीं होती है, तो टारबॉल के MD5 को अपस्ट्रीम टारबॉल के साथ मैच करना पड़ता है। इसके अलावा, स्पष्ट करने के लिए, पैच ने अपस्ट्रीम स्रोत को मेरा अनुरक्षक बना दिया, डेबियन डायरेक्टरी (स्रोत प्रारूप 3.0) और .diff.gzप्रारूप (1.0) में संग्रहीत हैं ।
उमंग १

उमंग, आपके सुधार के लिए धन्यवाद। मैं यह सुनिश्चित करने के लिए अपस्ट्रीम के टैरबॉल को बदलने के बारे में भाग को हटा दूंगा ताकि किसी को गलत विचार न आए।
wzzrd

2
अब ठीक लग रहा है, सिवाय इसके कि आपको "आरपीएम के लिए" एक ही टारबॉल का उपयोग करना महत्वपूर्ण है क्योंकि एक अपस्ट्रीम प्रोजेक्ट रिलीज़ होता है, टाइमस्टैम्प तक। " RPM के साथ मेरे अनुभव की कुल कमी के कारण, मुझे नहीं पता कि नीति में अंतर बहुत बड़ा है, लेकिन जैसा कि मैंने कहा, एक डेबियन डेवलपर इसे टाइमस्टैम्प पर सटीक होने के लिए जोर देगा जब तक कि अपस्ट्रीम टारबॉल डेबियन नीति का उल्लंघन नहीं करता है और इसकी आवश्यकता है निरस्त होना।
उमंग १

7
@wzzrd, आपकी स्रोत फ़ाइलों को प्रति-पैकेज निर्देशिका में एक साथ रखना आसान है,% _specdir और% _sourcedir को आपकी ~ / .rpmmacros फ़ाइल में परिभाषित करके।
परिपक्वता

94

बहुत से लोग सॉफ़्टवेयर की स्थापना के साथ तुलना apt-getकरते हैं rpm -i, और इसलिए DEB को बेहतर कहते हैं। हालांकि इसका DEB फ़ाइल प्रारूप से कोई लेना-देना नहीं है। वास्तविक तुलना dpkgबनाम rpmऔर aptitude/ apt-*बनाम zypper/ है yum

उपयोगकर्ता के दृष्टिकोण से, इन उपकरणों में बहुत अंतर नहीं है। RPM और DEB फॉर्मेट दोनों ही सिर्फ आर्काइव फाइल हैं, जिसमें कुछ मेटाडेटा भी संलग्न हैं। वे दोनों समान रूप से रहस्यमय हैं, हार्डकॉस्ट स्थापित पथ हैं (yuck!) और केवल सूक्ष्म विवरण में भिन्न हैं। दोनों dpkg -iऔर rpm -iउनके पास कोई तरीका नहीं है कि निर्भरता कैसे स्थापित करें, सिवाय इसके कि वे कमांड लाइन पर निर्दिष्ट किए जाएं।

इन उपकरणों के शीर्ष पर, वहाँ के रूप में भंडार प्रबंधन है apt-...या zypper/ yum। ये उपकरण रिपॉजिटरी डाउनलोड करते हैं, सभी मेटाडेटा को ट्रैक करते हैं और निर्भरता के डाउनलोड को स्वचालित करते हैं। प्रत्येक एकल पैकेज की अंतिम स्थापना निम्न-स्तरीय टूल को सौंप दी जाती है।

लंबे समय से, apt-getमेटाडाटा की भारी मात्रा को संसाधित करने में बेहतर है वास्तव में तेजी से yumइसे करने के लिए उम्र ले जाएगा। RPM को rpmfind जैसी साइटों का भी सामना करना पड़ा जहाँ आपको विभिन्न वितरण के लिए 10+ असंगत पैकेज मिलेंगे। Aptडीईबी पैकेजों के लिए इस समस्या को पूरी तरह से छिपा दिया क्योंकि सभी पैकेज एक ही स्रोत से स्थापित हो गए।

मेरी राय में, zypperवास्तव में इस अंतर को बंद कर दिया गया है aptऔर इन दिनों RPM आधारित वितरण का उपयोग करने में शर्मिंदा होने का कोई कारण नहीं है। यह उतना ही अच्छा है अगर एक विशाल संगत पैकेज इंडेक्स के लिए ओपनएसयूएसई बिल्ड सर्विस के साथ उपयोग करना आसान नहीं है।


@ तशपंग: तय
vdboor

12
मेरी राय में, मैंने आपके द्वारा बताए गए सटीक कारण के लिए RPM का तिरस्कार किया है: "RPM को rpmfind जैसी साइटों से भी नुकसान हुआ है जहाँ आपको विभिन्न वितरणों के लिए 10+ असंगत पैकेज मिलेंगे।" इसके अलावा, मुझे सॉफ़्टवेयर की आवश्यकता के लिए RPM खोजना अत्यधिक कठिन लगता है। जबकि DEB के लिए: "Apt ने इस समस्या को DEB संकुल के लिए पूरी तरह से छिपा दिया क्योंकि सभी पैकेज एक ही स्रोत से स्थापित किए गए थे।" जो वास्तव में खोजने और उपयोग करने में आसान हैं। इसके अलावा, DEB हमेशा निर्भरता खोजने और स्थापित करने के लिए बेहतर लगता है, जबकि RPM का हमेशा मुझे लटकने लगता है ... दोनों का उपयोग करने के 15 साल बाद मेरी राय!
21

2
मेरा मानना ​​है कि यह उत्तर उपभोक्ता के दृष्टिकोण से प्रश्न को संबोधित करता है, @ wzzrd के विपरीत जो पूरी तरह से डेवलपर / पैकेजर केंद्रित है। इसके अलावा, स्तर अलगाव के बारे में बहुत स्पष्ट है।
GnP

1
आपका पाठ विकीवीएस पर कॉपी किया गया है , लगता है कि इसे ठीक से जिम्मेदार ठहराया गया है।
मार्टिन उडिंग

1
एक उपयोगकर्ता के दृष्टिकोण से, यह सबसे अच्छा जवाब है। और मुझे लगता है कि PPAs का उपयोग एक नया यम रेपो जोड़ने की तुलना में बहुत सरल है।
मार्को सुल

39

सिस्टम एडमिनिस्ट्रेटर के दृष्टिकोण से, मुझे कुछ मामूली अंतर मिले हैं, जो मुख्य रूप से पैकेज प्रारूप के बजाय dpkg / rpm टूल सेट में है।

  • dpkg-divertआपकी अपनी फ़ाइल को पैकेज से आने वाले विस्थापित करना संभव बनाता है। यह एक लाइफसेवर हो सकता है जब आपके पास एक प्रोग्राम होता है जो एक फ़ाइल के लिए दिखता है /usrया जवाब /libनहीं देगा /usr/localविचार प्रस्तावित किया गया है, लेकिन जहां तक ​​मैं बता सकता हूं कि अपनाया नहीं गया है, आरपीएम में।

  • जब मैंने अंतिम रूप से आरपीएम-आधारित सिस्टम दिया था (जो कि वास्तव में वर्षों पहले था, शायद स्थिति में सुधार हुआ है), आरपीएम हमेशा संशोधित कॉन्फ़िगरेशन फ़ाइलों को अधिलेखित करेगा और मेरे अनुकूलन को *.rpmsave(IIRC) में स्थानांतरित करेगा । इसने मेरे सिस्टम को कम से कम एक बार अप्राप्य बना दिया है। Dpkg मुझसे पूछता है कि मुझे क्या करना है, मेरे अनुकूलन को डिफ़ॉल्ट के रूप में रखना।

  • एक आरपीएम बाइनरी पैकेज पैकेज के बजाय फाइलों पर निर्भरता की घोषणा कर सकता है, जो एक डेब पैकेज की तुलना में बेहतर नियंत्रण की अनुमति देता है।

  • आप rpm टूल के संस्करण N-1 के साथ सिस्टम पर संस्करण N rpm पैकेज स्थापित नहीं कर सकते। यह dpkg पर भी लागू हो सकता है, सिवाय इसके कि प्रारूप में अक्सर परिवर्तन नहीं होता है।

  • Dpkg डेटाबेस में टेक्स्ट फाइलें होती हैं। आरपीएम डेटाबेस बाइनरी है। यह dpkg डेटाबेस को जांच और मरम्मत के लिए आसान बनाता है। दूसरी ओर, जब तक कुछ भी गलत नहीं होता है, आरपीएम बहुत तेज हो सकता है (एक डिबेट स्थापित करने के लिए हजारों छोटी फ़ाइलों को पढ़ने की आवश्यकता होती है)।

  • एक डिब पैकेज मानक प्रारूपों ( ar, ) का उपयोग करता है tar, gzipताकि आप निरीक्षण कर सकें, और एक चुटकी ट्वीक में) डिब पैकेज आसानी से। आरपीएम पैकेज लगभग अनुकूल नहीं हैं।


2
इन दिनों ऐसा लग रहा है कि यह नई कॉन्फ़िगरेशन फ़ाइल को *.rpmnewआपके संशोधित एक क्लोबबेरिंग के बजाय कम से कम ओपनसूट पर सहेजता है ।
इवान

1
दोनों किया जाता है, इसलिए आपको rpmsave और rpmnew फ़ाइलों का बिखरना मिलता है।
बुरहान अली

4
आप गलत हैं RPM मानक प्रारूपों का उपयोग नहीं करते हैं। RPMS डेटा अनुभाग के लिए CPIO का उपयोग करता है - जो एक मानक संग्रह प्रारूप है। अन्य वर्गों में ज्यादातर हेडर हैं। आप RPM के केवल डेटा सेक्शन को निकालने और rpm के भीतर मौजूद फाइलों को निकालने के लिए टूल rpm2cpio का उपयोग कर सकते हैं। उदाहरण के लिए: rpm2cpio foobar.rpm | cpio -idmv
टक्सड्यूड

... और वहाँ rpm2cpio.shउन लोगों के लिए इच्छुक है।
माइकल शगोरिन 19

debमेरे द्वारा याद किए जाने वाले प्रारूप में एकमात्र ब्रेकिंग परिवर्तन हो data.tar.gzगया data.tar.xz, जिस बिंदु पर पुराने dpkgने नए पैकेज खोलने में सक्षम होने से रोक दिया।
mtraceur

19

आरपीएम:

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

DEB:

  • बढ़ती लोकप्रियता
  • सिफारिशों और सुझावों की अनुमति देता है (संभवतः नए RPM इसे भी अनुमति देता है)

संभवतः अधिक महत्वपूर्ण प्रश्न पैकेज प्रारूप के बजाय पैकेज प्रबंधक (dpkg बनाम yum बनाम एप्टीट्यूड आदि) है (जैसा कि दोनों तुलनीय हैं)।


6
मूल रूप से "बढ़ती लोकप्रियता" नहीं है "उबंटू डेबियन पर आधारित है, और इसलिए, y'know, वहाँ फिर जाओ?"
परिपक्वता

"यम बनाम dpkg" गलत तुलना है पूर्व के रूप में है एक पैकेज प्रबंधक लेकिन बाद है नहीं (बस के रूप में उपयुक्त / योग्यता सिर्फ "पैकेज" के बजाय भंडार स्तर के प्रबंधक हैं)।
माइकल शगोरिन

13

जैसा कि कई उत्तरदाताओं ने कहा, यह इतना अधिक नहीं है कि एक निश्चित पैकेज प्रारूप स्पष्ट रूप से बेहतर है। तकनीकी रूप से, वे कम या ज्यादा तुलनीय हो सकते हैं। मेरे दृष्टिकोण से बहुत सारे मतभेद हैं, और लोग एक-दूसरे को क्यों पसंद करते हैं, इसके साथ क्या करना है:

  • मूल पैकेज डिजाइन और लक्ष्य दर्शकों के दर्शन
  • सामुदायिक आकार, और विस्तार से, रिपॉजिटरी की गुणवत्ता और समृद्धि

दर्शन:

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

  • जरूरत या वैकल्पिक क्रोन नौकरियों की स्थापना
  • विकल्प / उपनाम सेट करना
  • स्टार्टअप / शटडाउन स्क्रिप्ट सेट करना
  • चूक के साथ सभी आवश्यक कॉन्फ़िगरेशन फ़ाइलों को शामिल करें जो समझ में आता है
  • पुस्तकालयों के पुराने संस्करणों को रखना और पिछड़े अनुकूलता के लिए पुस्तकालयों (.so) के लिए सही संस्करण वाले सिमिलिंक जोड़ना
  • एक ही मशीन और इतने पर बहु-आर्च (32 और 64 बिट) बायनेरिज़ के लिए स्वच्छ समर्थन।

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

सामुदायिक आकार, भागीदारी और रिपॉजिटरी की समृद्धि:

चूंकि उबंटू / डेबियन / मिंट / ... समुदाय बड़ा है, इसलिए अधिक लोग पैकेजिंग और परीक्षण सॉफ्टवेयर में शामिल हैं। मैंने रिपॉजिटरी की समृद्धि और गुणवत्ता को बेहतर पाया। Ubuntu में, मैं शायद ही कभी, अगर बिल्कुल, स्रोत डाउनलोड करने और इसे बनाने की जरूरत है। जब मैंने घर पर रेड हैट से उबंटू में स्विच किया, तो ठेठ आरएचईएल रेपो में ~ 3000 पैकेज थे, जबकि एक ही समय में, ubuntu + ब्रह्मांड + मल्टीवर्स सभी किसी भी कैनोनिकल दर्पण से सीधे उपलब्ध थे, इसमें ~ 30,000 पैकेज (लगभग 10x) थे। आरपीएम प्रारूप में मैं जिन पैकेजों की तलाश कर रहा था, उनमें से ज्यादातर सरल खोज के माध्यम से आसानी से उपलब्ध नहीं थे और पैकेज प्रबंधक में क्लिक करें। उन्हें वैकल्पिक रिपॉजिटरी में स्विच करने की आवश्यकता थी, rpmfind सेवा वेब साइट आदि की खोज करें। यह, ज्यादातर मामलों में, समस्या को हल करने के बजाय, निर्भरता को सही ढंग से उन्नत नहीं किया जा सकता है या नहीं किया जा सकता है, यह प्रतिबंधित करने में मेरी स्थापना को तोड़ दिया। मैंने "निर्भरता नरक" घटना को मारा, जैसा कि शॉन जे गोफ द्वारा ऊपर वर्णित है।

उबंटू / डेबियन में इसके विपरीत मैंने पाया कि मुझे स्रोत से निर्माण करने की आवश्यकता नहीं है। इसके कारण भी:

  • उबंटू फास्ट (6 महीने) रिलीज चक्र
  • पूरी तरह से संगत पीपीए का अस्तित्व जो बॉक्स से बाहर काम करता है
  • एकल स्रोत रिपॉजिटरी (सभी कैनोनिकल द्वारा होस्ट किए गए) को वैकल्पिक / पूरक रिपोज के लिए खोज करने की आवश्यकता नहीं है
  • निर्बाध उपयोगकर्ता अनुभव क्लिक से चलाने के लिए

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

ध्यान दें कि यह एक लौ युद्ध शुरू करने का इरादा नहीं है, यह सिर्फ मेरे अनुभव को दोनों दुनियाओं के समानांतर कई सालों से उपयोग कर रहा है (काम बनाम घर)।


यह बल्कि "रिहैट बनाम कैनोनिकल" के बारे में है (विहित रीपिंग के साथ जो डेबियन दो दशकों से कर रहा है) और "आरपीएम बनाम डिबेट" के बारे में नहीं - मैं बताता हूं कि एएलटी लिनक्स टीम के सदस्य के रूप में।
माइकल शगोरिन 19

हाँ, ठीक है। और अच्छी तरह से कहा।
अरीफेल

12

मुझे लगता है कि पूर्वाग्रह पैकेज प्रारूप से नहीं, बल्कि उन असंगतताओं से आता है जो रेडहैट के रिपॉजिटरी में मौजूद थे।

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


8

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


6

आरपीएम के बारे में एक बात जो मुझे पसंद है, वह है (हाल ही में?) डेल्टा आरपीएम के अलावा। यह आसान अद्यतन करने की अनुमति देता है, आवश्यक बैंडविड्थ को कम करता है।

DEBs मानक ar फाइलें हैं (अधिक मानक अभिलेखागार के साथ), RPM "स्वामित्व" बाइनरी फाइलें हैं। मुझे व्यक्तिगत रूप से लगता है कि पूर्व अधिक सुविधाजनक है।

बस दो चीजें मैं अपने सिर के ऊपर से सोच सकता हूं। दोनों बहुत तुलनीय हैं। दोनों में पैकेजिंग के लिए बेहतरीन उपकरण हैं। मुझे नहीं लगता कि एक या दूसरे के विपरीत इतने सारे गुण हैं।


7
RPMs को "स्वामित्व" कहना थोड़ा मजबूत है। कुछ अतिरिक्त हेडर और ऐसे हैं, लेकिन एक RPM का मूल एक gzip-संकुचित cpio संग्रह है। एक उपकरण है जो RPM के साथ आता है जिसे rpm2cpio कहा जाता है जो आपको इस कोर को निकालने देता है ताकि आप इसके साथ खेल सकें जैसे आप adeb फाइल के साथ कर सकते हैं।
वॉरेन यंग

4
बकवास। RPM बाइनरी फ़ाइलों का मालिक नहीं है। वे cpio के आस-पास बनाए जाते थे (जो पुराना है, हाँ, लेकिन मालिकाना नहीं), जबकि RPM के नए संस्करण xz का उपयोग करते हैं, जो खुले स्रोत के रूप में भी उपलब्ध है।
वुज़ु

ठीक है, मैंने इसे उद्धृत किया है, क्योंकि यह वास्तव में मालिकाना नहीं है और ठीक यही मेरा मतलब है: अतिरिक्त हेडर इत्यादि, इसलिए यह एक डीबट की तरह एक सीधी आर फ़ाइल नहीं है। कोई बड़ी बात नहीं, बस मामूली बात है।
जोहानसन

5
शायद आपको "स्वामित्व वाली बाइनरी फ़ाइलों" को "संग्रहित फ़ाइलों के साथ गैर-मानक हेडर के साथ जोड़ा जाना चाहिए।"
रयान थॉम्पसन

रुचि रखने वालों को rpm2cpio.shस्क्रिप्ट मिल सकती है ।
माइकल शगोरिन

5

OpenSUSE बिल्ड सर्विस (OBS) और ज़ाइपर एक दो कारण हैं जो मैं एक पैकेज और उपयोगकर्ता के दृष्टिकोण से बहस पर RPM पसंद करते हैं। Zypper ने एक लंबा सफर तय किया है और यह काफी खतरनाक है। ओबीएस, हालांकि यह डीबीएस को संभाल सकता है, यह वास्तव में अच्छा है जब यह विभिन्न प्लेटफार्मों जैसे कि ओपनएसईएलई, एसएलई, आरएचईएल, सेंटोस, फेडोरा, मैंडविरा, आदि के लिए पैकेजिंग rpms की बात आती है।


IMHO ओपनएसयूएसई बिल्ड सर्विस लंबे समय में सबसे अच्छी चीज है। उन्होंने वास्तव में इसे सही किया है।
आर्ची

हालांकि यह डिबेट आरपीएम के बारे में है, आप सही हैं कि ज़ीपर प्राथमिकताओं के साथ रिपॉजिटरी का समर्थन करने और भयानक एसएटी सॉल्वर के साथ कमाल है।
dnnrr

5

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

यहां कुछ विशिष्ट विशेषताओं की तुलना के लिए एक बहुत अच्छा संदर्भ है जो प्रत्येक विशिष्ट पैकेजिंग प्रारूप के लिए उपलब्ध हैं: http://debian-br.sourceforge.net/txt/alien.htm (वेब सर्वर के अनुसार, यह दस्तावेज़ काफी पुराना है : अंतिम-संशोधित: सूर्य, 15 अक्टूबर 2000 ताकि यह सबसे अच्छा संदर्भ न हो।)


1
हाय @ मायकेग्रे। लिंक टूट गया है। कृपया आप इसे अपडेट कर सकते हैं?
ओलिब्रे

4

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


ये सभी बातें भी सही हैं, उदाहरण के लिए, फेडोरा के लिए आरपीएम पैक।
Mattdm

1
डेबियन की निर्भरता पैदा करने वाले उपकरण बिना किसी के बगल में हैं, हम एएलटी लिनक्स (आरपीएम आधारित वितरण एपीटी को नियोजित करते हुए) में हल्के हैं।
माइकल शगोरिन

3

निम्नलिखित तीन मौलिक अंतरों के वास्तविक परिणाम कैसे होते हैं, इस पर कोई भी अन्य उत्तर स्पर्श नहीं करता है :

  1. debफाइलें मूल रूप से सिर्फ arदो संकुचित टारबॉल युक्त अभिलेखागार हैं
  2. debसंकुल और dpkgसिस्टम आपके अनुरक्षण स्क्रिप्ट को अलग-अलग फ़ाइलों के रूप में संग्रहीत करते हैं
  3. dpkgऔर rpmअपग्रेड स्क्रिप्ट को एक अलग क्रम में अपग्रेड के दौरान चलाते हैं।

साथ में, इन अंतरों ने मेरे लिए खराब पैकेजों के कारण होने वाली समस्याओं को ठीक करना और पैकेजों को व्यवहार करने का तरीका आसान बना दिया है, जिससे मुझे-ऑन- debआधारित सिस्टमों की तुलना में ऑन- rpmसिस्टम सिस्टमों के साथ-साथ सिस्टम एडमिनिस्ट्रेटर के रूप में और पैकर के रूप में दोनों की आवश्यकता होती है। ।

# 1 की वजह से, अगर मुझे किसी debफ़ाइल को बदलने की आवश्यकता है, तो मैं इसे खुले तौर पर पॉप कर सकता हूं, जो भी मैं चाहता हूं, उसमें बदलाव कर सकता हूं, और इसे मानक उपकरण का उपयोग करके पुनर्प्राप्त कर सकता हूं, जो अधिकांश सिस्टम पर मौजूद हैं

इसमें किसी भी निर्भरता को बदलना / जोड़ना / हटाना, या पैकेज फ़ाइलों में से कोई भी, या किसी अनुचर स्क्रिप्ट को शामिल करना, या पैकेज संस्करण या नाम बदलना शामिल है।

# 2 के कारण, यदि पहले से स्थापित पैकेज द्वारा स्थापित "हटाएं" लिपियों में कोई समस्या है, तो मैं मानक उपकरण का उपयोग करके इसे ठीक कर सकता हूं, जो किसी भी सिस्टम पर मौजूद है

क्योंकि # 3 की, मैं सिर्फ इसलिए अपग्रेड प्रक्रिया के दौरान अपने पैकेज का एक नया संस्करण जारी करके उन सुधारों में से कुछ कर सकते हैं, dpkgपैकेज के नए संस्करण की "पूर्व स्थापित" स्क्रिप्ट चलाता है से पहले की "के बाद निकालें" स्क्रिप्ट पुराने संस्करण।

इसका मतलब यह है कि "रिकवरीबिलिटी सिद्धांत" के उल्लंघन के लिए सतह क्षेत्र debपैकेजों में छोटा है: पैकेज के पुराने संस्करण में अधिक गलतियों को एक नए संस्करण से पुनर्प्राप्त किया जा सकता है।

और चूंकि पैकेज को संशोधित करना इतना आसान है - वास्तविक पैकेज-विशिष्ट फ़िडलिंग और ज्ञान ओवरहेड छोटा है - यह अधिक लोगों के लिए सुलभ है और debफ़ाइलों के साथ कम समय और प्रयास लेता है ।

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