डेबियन और आर्क के बीच पैकेज प्रबंधन में अंतर


9

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

क्या आप दो पैकेज प्रबंधकों के बीच लचीलेपन / शक्ति का भी उल्लेख कर सकते हैं: दोनों में से कौन आपको अधिक करने देता है।

मुझे पता है कि डेबियन पैकेज मैनेजमेंट सिस्टम पर उपलब्ध कुछ सुविधाएँ आर्क सिस्टम पर अप्रासंगिक होंगी, क्योंकि आर्क में सिंगल सूट है और डेबियन में मल्टीपल (जैसे एपीटी पिनिंग और एडवांस्ड डिपेंडेंसी हैंडलिंग की बात आती है), इसलिए कृपया सुविधाओं की तुलना करें दोनों प्रणालियों के लिए लागू होते हैं (यानी मान लेते हैं कि डेबियन के लिए, मैं केवल अस्थिर का उपयोग करता हूं )।


नोट : डेबियन पैकेज प्रबंधन द्वारा मैं एपीटी, एप्टीट्यूड, और डीपीकेई की बात कर रहा हूं। मैं आर्क टूल्स से परिचित नहीं हूं, इसलिए मुझे नहीं पता कि पैक्मैन के अलावा कुछ और है या नहीं।
tshepang

जवाबों:


7

मैं सिर्फ कुछ हफ्तों से नियमित रूप से आर्च का उपयोग करता हूं और इस विषय पर कोई विशेषज्ञ नहीं हूं, इसलिए यह जवाब किसी भी तरह से संपूर्ण नहीं है, बस कुछ बिंदुओं पर मैंने "लचीलापन / शक्ति" के बारे में नोट किया है:

  • यह सिर्फ एक छाप है, लेकिन इसकी डिजाइन / वास्तुकला में पैक्मैन अधिक आधुनिक और सरल लगता है। कम से कम वहाँ से निपटने के लिए कम उपकरण है। हालांकि मुझे उपयुक्त स्रोत कोड का पता नहीं है, मैं बस एक बहुत ही साधारण पैच बनाने के लिए libalpm कोड (पैक्मैन की अंतर्निहित लाइब्रेरी) को देखने के लिए हुआ, और यह साफ और समझने में आसान लगता है।

  • यह बहुत तेज़ है (अनुकूलन के कारण और संभवतः कुछ चीज़ों के बारे में परवाह करके (नीचे देखें))। अंतिम रिलीज (pacman 3.5, कुछ दिन पुरानी) में शामिल डेटाबेस फ़ाइलों की संख्या को कम करके प्रदर्शन में सुधार करने की कोशिश की गई।

  • जबकि आर्क बाइनरी पैकेज के उपयोग की ओर उन्मुख है, बीएसडी के बंदरगाहों (एबीएस) के समान एक निर्माण प्रणाली के साथ, स्रोत से पैकेज बनाते समय इसके फायदे भी हैं।

  • पैकेज बनाना और पीकेजीबीयूएलडी फ़ाइल में कुछ पंक्तियाँ और इसके द्वारा किया गया यह बहुत आसान और त्वरित है, नियंत्रण / नियमों / कॉपीराइट / चैंज / जो कि डेबियन पैकेज के साथ की तरह है। और एक वेब पर कुछ क्लिकों में आपका पैकेज AUR (Arch User Repository) पर सभी के साथ साझा किया जाता है।

डेबियन में मिलने वाली चीजें और आर्क में नहीं:

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

  • debconf (कोई बड़ी बात नहीं है और मुझे चीजों को मैन्युअल रूप से करने के लिए मजबूर करने से यह मुझे यह जानने के लिए मजबूर करता है कि वास्तव में क्या किया गया है) और नई कॉन्फिग फाइलों की उचित हैंडलिंग (मैं कम से कम पेसमैन को यह जानना चाहूंगा कि नए पैकेज में कॉन्फिगर फाइल कब होगी संस्करण स्थापित एक से अलग है क्योंकि इसे नए संस्करण में बदल दिया गया था या क्योंकि मैंने इसे स्थानीय रूप से संशोधित किया है)।

  • पैकेज हस्ताक्षर (लगता है कि यह काम किया जा रहा है )।

आर्क लाइट होने के लिए, एकमात्र वास्तविक कारण यह है कि यह डिफ़ॉल्ट रूप से इंस्टॉल किए गए कुछ पैकेजों के साथ आता है और आपको जो कुछ भी ज़रूरत है उसे जोड़ने के लिए प्रोत्साहित किया जाता है, इसलिए संभवतः डिफ़ॉल्ट रूप से वैकल्पिक निर्भरता स्थापित न करना उपयोगकर्ताओं को ब्लोट से बचने के लिए स्थापित करने के लिए उकसा रहा है।


मैं इसे पार्स नहीं कर सकता: लेकिन मैं इसके बिना कर सकता हूं और जिस तरह से जानता हूं कि मैं बेहतर करता हूं । अंतिम वाक्य पर एक टाइपो भी है।
tshepang 14

पैकमैन पैकेज मैनेजर किस भाषा में लिखा जाता है? क्या इसमें dpkg / apt के समान निम्न स्तर और उच्च स्तरीय पैकेज प्रबंधन कार्यक्षमता है, और यदि हां, तो उन्हें क्या कहा जाता है?
फहीम मीठा

@Tshepang: क्षमा करें, गैर-देशी अंग्रेजी वक्ता यहाँ। मेरा मतलब था "यह मेरे लिए इस कार्यकुशलता (डिस्कोन्फ) नहीं है और मुझे चीजों को मैन्युअल रूप से करने के लिए मजबूर करने के लिए यह एक बड़ी बात नहीं है, यह मुझे यह जानने के लिए मजबूर करता है कि वास्तव में क्या किया गया है"।
gentledevil

@ फहीम मीठा: पैकमैन सी में लिखा गया है, और वह लिबरलपीएम का एक दृश्य है, जो "उच्च-स्तरीय" और "निम्न-स्तर" पैकेज प्रबंधन दोनों को संभालता है।
gentledevil

@ ज़नको: मैं कोई देशी वक्ता नहीं हूं। मैं चाहता था कि आप वाक्य को स्पष्ट करें, और टिप्पणी में नहीं, बल्कि स्वयं पोस्ट पर। BTW, मैंने जिस टाइपो का उल्लेख किया है वह विकल्पात्मक है । मैं स्वयं पोस्ट को संपादित कर सकता था, लेकिन मुझे लगा कि आप इसे स्पष्टीकरण भाग के साथ ठीक कर सकते हैं।
tshepang

6

मैंने उबंटू ल्यूसिड के साथ अपनी लिनक्स यात्रा शुरू की, और वर्तमान में आर्क का उपयोग करता हूं। मैंने कुछ मुट्ठी भर आर्क पैकेज लिखे हैं, और मैं इसे डेबियन पैकेज लिखने की तुलना में बहुत आसान कहूंगा। लेकिन, मैं @gentledevil को इंगित करना चाहूंगा कि आर्क में संकुल के लिए एक हुक प्रणाली है, जिसे a के रूप में जाना जाता है install file

मूल रूप से, इसका नाम ${pkgname}.install, और इसमें प्री / पोस्ट इंस्टाल / रिमूव / अपग्रेड के कुछ कार्य शामिल हैं; बस अपने फॉन्ट-कैश अपडेट को उसमें और इसी तरह रखें और यह डेबियन हुक के समान ही काम करता है।

इसके अलावा, मैंने देखा कि आपने डेबियन पैकेज प्रबंधन टूल का उपयोग करते हुए 'पिनिंग' का उल्लेख किया है; आर्क के पैक्मैन में बिल्ट-इन है /etc/pacman.conf, जिसमें कई सेटिंग्स भी शामिल हैं IgnorePkg =, जिसमें समतुल्य (स्पेस-सीमांकित) के बाद सूचीबद्ध किसी भी पैकेज में अपग्रेड को रोका जाएगा।


1
इसके अलावा, एक रेपो पैकेज नहीं है, तो आप powerpillपैक्मैन के लिए रैपर का उपयोग कई पैकेजों के समानांतर डाउनलोड करने के लिए कर सकते हैं , इसलिए pacman -S libfoo libbar libbazप्रत्येक पैकेज को एक के बाद एक डाउनलोड करने के बजाय यह तीनों को एक साथ डाउनलोड करेगा, बेहतर कनेक्शन के लिए अपग्रेड गति को बहुत बढ़ाएगा।
हंटर १२:१४ 12:14

-1

इससे पहले कि मैं बहुत दूर जाऊं, पिक्टोरियल लिनक्स टाइमलाइन का अध्ययन करें

पैकेज मैनेजरों में अंतर को समझने के लिए, आपको ऊपर चित्रित OS'es के दर्शन को समझना चाहिए


तीन प्रमुख माता-पिता

  1. रेडहैट, नाउ फेडोरा - पैकेज मंगर - आरपीएम, रेडहैट पैकेज मैनेजर के लिए संक्षिप्त, कमांड लाइन rpm
  2. Slackware - पैकेज मैनेजर - tzz, साधारण ज़िप्ड फाइलें। हालाँकि ये केवल संकुचित फ़ाइलें हैं, जिन्हें स्लैकवेयर अपस्ट्रीम द्वारा बनाया गया था और एक रिपॉजिटरी में रखा गया था, जिन्हें कभी-कभी पोर्ट के रूप में संदर्भित किया जाता है
  3. डेबियन - डेब, डेबियन के लिए संक्षिप्त, यह कमांड लाइन टूल है Aptitude or Apt

ये माता-पिता आज के अधिकांश वितरणों के लिए माता और पिता हैं। पैकेज मैनेजमेंट सिस्टम का विचार / अवधारणा किसी न किसी रूप या फैशन में प्राप्त या साझा की गई थी। भले ही, ये सभी माता-पिता द्विआधारी वितरक हैं, जिसका अर्थ है कि एक कार्यक्रम को 3 जी पार्टी द्वारा पैक किया गया है और उस पर निर्णय लिया गया है, फिर भंडार में संग्रहीत किया जाता है, और उपयोगकर्ता आधार द्वारा खपत या स्थापित किया जाता है।

3 छोटे माता-पिता

  1. लिनक्स स्क्रैच से - स्रोत आधारित, कोई पैकेज प्रबंधक नहीं।
  2. जेंटू - स्क्रैच से लिनक्स से व्युत्पन्न । यह वितरण मूल रूप से स्क्रैच प्लस पैकेज मैनेजर से लिनक्स है, जिसे पोर्टेज / उभरना कहा जाता है
  3. SourceMage - पैकेज मैनेजर टोना

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

पुल

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


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

  • उपयोगकर्ता का स्तर: किसी के लिए लिनक्स में नया एक मेजर पैरेंट के साथ शुरू होना चाहिए, जबकि तकनीकी रूप से कुशल किसी को एक संतुलन मिलेगा।
  • आप अपने सिस्टम के साथ क्या करना चाहते हैं: संलग्न उपयोगकर्ताओं के साथ एक LAMP सर्वर चलाना वेब ब्राउज़िंग और ई-मेल पढ़ने के लिए डेस्कटॉप पीसी चलाने की तुलना में पूरी तरह से अलग है।
  • आराम स्तर: उपयोगकर्ता स्तर समझ में नहीं आता है, यदि आप तकनीकी रूप से कुशल हैं, लेकिन एक प्रणाली का संकलन करने के लिए सप्ताहांत नहीं बिताना चाहते हैं, तो आप एक प्रमुख माता-पिता का चयन करेंगे, चाहे आप सभी को जानते हों कि आप कुछ और चुनते हैं।

यह पैक्मैन और डेबियन के पैकेज प्रबंधन टूल की तुलना के बजाय वितरण की वंशावली पर अधिक ध्यान केंद्रित किया गया है ...
जेसनव्रीयन

@ajonwryan वह बिंदु है, जैसा कि सभी पैकेज प्रबंधक एक ही कार्य को पूरा करते हैं, अर्थात emerge packagenameजैसा है sudo apt-get install packagename
eyoung100

उस स्तर पर, हाँ; लेकिन यह पूरी तरह से प्रश्न के बिंदु को याद करता है, अर्थात, {apt, aptitude} से pacman को क्या अलग करता है।
जसोनव्रीयन

@ मैंजोनरीवन ने जवाब दिया कि ब्रिज सेक्शन में। उसके अलावा, कोई अंतर नहीं है। केवल अंतर शब्दार्थ हैं, अर्थात एक कमांड बनाम दूसरा। यदि ओपी शब्दार्थ भेद की तलाश कर रहा है, तो उसके लिए एक मैनुअल है।
eyoung100

-3

यह मेरे द्वारा पहले से ही कुछ बहुत अच्छे अंक देने से पहले पोस्टरों के पूर्ण या संपूर्ण उत्तर का कोई मतलब नहीं है, मैं सिर्फ अपने 2 सेंट जोड़ना चाहूंगा। एक और बात - मैं सच में कभी भी apt / dpkg की अभ्यस्त नहीं हुई। यह हमेशा मुझे जटिल लगता है, मैं वास्तव में यम / आरपीएम के साथ सबसे अधिक आरामदायक हूं।

pacman का उपयोग करना बहुत आसान है, जो एक समर्थक और एक चोर है - आप इसका उपयोग करना सीख सकते हैं (एक तरफ पैकेज निर्माण) एक ही दोपहर में - यह ज्यादातर सहज और पूर्ण पैकेज प्रबंधन सुविधाओं का उपयोग करता है, लेकिन - और यह एक बड़ा लेकिन - यह बेहद अनम्य है।

यदि डिजाइनरों ने पहले से एक सुविधा के बारे में नहीं सोचा, तो आप खराब हो गए हैं।

कुछ उदाहरण: पैक्मैन में कोई देशी संस्करण नहीं है। यदि आप एक पैकेज संस्करण को डाउनग्रेड करना चाहते हैं - आपको उस विशेष पैकेज संस्करण को डाउनलोड करना होगा, और फ़ाइल से इंस्टॉल करने के लिए -U (अपग्रेड) विकल्प का उपयोग करना होगा। यह हमेशा अपने सिस्टम पर अत्याधुनिक पैकेजों का उपयोग करने के लिए बहुत अधिक तैयार है।

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

pkman dkms के साथ एकीकरण भी कुछ समस्याग्रस्त है - एक नई कर्नेल स्थापित करते समय मुझे dkms से त्रुटियां होती रहीं। नए कर्नेल के खिलाफ dkms build && dkms इंस्टॉल का उपयोग करना बिना किसी अड़चन के काम किया, फिर भी pacman कोई भी जानकारी नहीं देगा कि कर्नेल अपग्रेड के दौरान dkms विफल क्यों हुआ (मुझे संदेह है कि यह नए कर्नेल के सही मार्ग से कभी नहीं गुजरा, और सिर्फ dkms को डिफ़ॉल्ट का उपयोग करने दें (करंट रनिंग) कर्नेल लेकिन गलत संस्करण के साथ)।

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

pacman केवल यह बताता है कि एक फ़ाइल पहले से मौजूद है, लेकिन पूरी तरह से अप्रासंगिक त्रुटि संदेश के साथ - यह फ़ाइल "सच्चे" के मालिक और वर्तमान में स्थापित "फाइलसिस्टम" पैकेज के बीच संघर्ष की शिकायत करता है, जैसे कि यह भी उसी फ़ाइल का स्वामी है। इसके अलावा, यह ज्यादातर स्‍थानीय स्‍थापित सूचनाओं के लिए तैयार है - अभी तक संस्थापित पैकेजों की जानकारी (जैसे फ़ाइल सूची और स्‍वामित्‍व) हासिल करने की कोशिश कम सहज नहीं है।

सीधे शब्दों में कहें - यह यम की तरह परिपक्व नहीं है, और शायद dpkg, जो इसे उपयोग में आसानी के साथ उधार देता है, सापेक्ष संवेदनशीलता है।


1
एक व्यापक गैर-उत्तर में से कुछ, ऐसे कई बिंदु हैं जो आप उठाते हैं कि वास्तव में पैक्मैन के साथ एक अपरिचितता का एक उत्पाद है। उदाहरण के लिए pacman -Qo $fileआपको बताएगा कि कौन सी पैकेज $ फ़ाइल का मालिक है। इसके अलावा, आपका पूरा जवाब एक स्ट्रोमैन का है क्योंकि ओपी ने स्पष्ट रूप से आर्क और डेबियन के बीच मतभेदों के लिए कहा - yumइससे कोई लेना देना नहीं है ...
jasonwryan

यही कारण है कि मैंने अपने उत्तर की शुरुआत में स्पष्ट रूप से उस तथ्य का खुलासा किया। के रूप में -Qo $ फ़ाइल के लिए - क्या आपने कभी कोशिश की है कि एक पैकेज के लिए अभी तक स्थापित नहीं है?
दानी_एल

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

@jasonwryan बेशक एक बिंदु है। सिर्फ इसलिए कि आपको यह पता लगाने की आवश्यकता नहीं है कि कौन सा पैकेज एक फ़ाइल का मालिक हो सकता है, भले ही यह अभी तक स्थापित नहीं है, इसका मतलब यह नहीं है कि ऐसी कोई आवश्यकता नहीं है। यह बात थी। अन्य उपकरणों के रूप में - क्या वे आधार जानने की आवश्यकता पर हैं? pacman पैकेज मैनेजर है। आपके मुख्य बिंदु के बारे में - मैंने सवाल को पूरी तरह से गलत समझा हो सकता है, लेकिन मैंने इसे हल्के पीएम बनाम अधिक जटिल पीएम के बारे में माना। मैं apt / dpkg को यम / rpm के रूप में कम से कम जटिल मानता हूं, यह सुविधा के अनुसार है।
दानी_एल

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