Dpkg किस लिए है?


21

मेरा सवाल सरल है - मैं dpkg के बारे में अधिक जानना चाहता हूं - यह क्या करता है?


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

1
आपको पहले आना चाहिए: en.wikipedia.org/wiki/Dpkg
पंड्या

जवाबों:


17

जैसा कि कहा गया है, dpkg.deb फ़ाइलों को निकालने, विश्लेषण करने, अनपैक करने और स्थापित करने या हटाने के लिए एक निम्न-स्तरीय सिस्टम टूल है। हालाँकि, अन्य स्रोतों से प्राप्त की गई .deb फ़ाइलों को उपयोग करना Software Centreया Gdebiस्थापित करना या हटाना बेहतर है क्योंकि इन दोनों कार्यक्रमों में निर्भरता संकल्प है।

हालाँकि, जिसे समझाया नहीं गया है, वह है अपडेट का शारीरिक रचना का उपयोग dpkgऔर apt-get। यदि, उदाहरण के लिए हम apt-getस्थापित करने के लिए कॉल करते हैं cheese, तो निर्भरता के पेड़ का विश्लेषण किया जाता है और आवश्यक फाइलों को प्राप्त किया जाता है apt-get, जो तब उन्हें dpkgनिकालने, विश्लेषण करने और सही स्थानों पर स्थापित करने और उनके अंदर स्क्रिप्ट के अनुसार कॉन्फ़िगर करने के लिए पास करता है।

dpkgप्रत्येक .deb फ़ाइल के अंदर पढ़ी जाने वाली स्क्रिप्ट महत्वपूर्ण हैं क्योंकि वे पैकेज की स्थापना, हटाने और कॉन्फ़िगरेशन के बारे में कार्यक्रम को जानकारी देते हैं। इसलिए जब आप देखते /var/log/dpkg.logहैं कि 'ट्रिगर' और पैकेजों के बारे में बहुत सारी जानकारियाँ हैं जो अनपैकिंग और कॉन्फ़िगरेशन के अलग-अलग चरणों से गुजर रही हैं। अपने ब्लॉग में, राफेल हर्ट्ज़ोग (जो एक प्रमुख डेबियन डेवलपर और dpkgपैकेज के अनुरक्षक हैं ) dpkg ट्रिगर के बारे में अधिक बताते हैं और जिस तरह से dpkgपैकेजों का निरीक्षण और विन्यास करते हैं।

हम अब दिल में आता है कि क्या dpkgकरता है; यह उनकी निर्भरता के बजाए, डेबियन पैकेज को कुशलता से संभालता है। साथ dpkg-deb, उदाहरण के लिए, आप .deb अभिलेखागार से विश्लेषण में विभिन्न कार्यों और मैन्युअल रूप से निकालने फ़ाइलें प्रदर्शन कर सकते हैं; देखना man dpkg-debअधिक जानकारी के लिए।

प्रत्येक पैकेज की स्थिति को सूचीबद्ध किया गया है /var/lib/dpkg/status, जिसका उपयोग grepकिसी विशेष पैकेज पर जांच के लिए किया जा सकता है । Dpkgकॉन्फ़िगर किए गए विशेष पैकेजों को फिर से कॉन्फ़िगर करने के लिए भी कहा जा सकता है (देखें man dpkg-reconfigure):

sudo dpkg-reconfigure <package>

या अगर किसी अद्यतन के साथ कोई समस्या हुई है और सभी संकुल का विन्यास अभी भी लंबित है, तो सभी अपुष्ट संकुल का विन्यास करने के लिए:

sudo dpkg --configure -a

एक महान ट्यूटोरियल के लिए जो ध्यान केंद्रित करता है dpkgऔर apt-get, डेबियन हैंडबुक के अध्याय 5 और 6 देखें , जो कि सबसे अच्छी चर्चा उपलब्ध है। man dpkgअपने टर्मिनल में दर्ज करें या उपलब्ध कई सारे विकल्पों को देखने के लिए ऑनलाइन उबंटू के मैनपावर देखें, जैसे कि dpkg -lवर्तमान में स्थापित पैकेजों की सूची का उपयोग करना।


4

dpkg एक .deb से स्थापित करने या पहले से स्थापित संकुल को हटाने का एक कमांड लाइन तरीका है। उदाहरण के लिए यदि आपके पास अपने होम डायरेक्टरी में .deb फ़ाइल है, तो रनिंग dpkg -i yourpackage.debआपके लिए उस पैकेज को स्थापित करेगा। मुझे यह उपयोगी कम से कम मेरे लिए लगता है क्योंकि कभी-कभी .deb फ़ाइल पर क्लिक करने पर यह उबंटू सॉफ़्टवेयर केंद्र को लोड करता है लेकिन वास्तव में इसे कभी भी स्थापित नहीं करता है या इसमें कोई समस्या नहीं है।


4

हमेशा की तरह, manकमांड शुरू करने के लिए एक शानदार जगह है।
man dpkgफिर भी आप सभी विकल्प दे सकते हैं:

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

तो मूल रूप से यह निर्भरता को हल किए बिना उपयुक्त है, और यह .deb फ़ाइलों को स्थापित करने के लिए उपयोग किया जाता है।

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

उदाहरण के लिए dpkg -r zipआप ज़िप पैकेज का उपयोग कर सकते हैं, लेकिन कोई भी पैकेज जो इस पर निर्भर है वह अभी भी स्थापित किया जाएगा और अब सही ढंग से काम नहीं कर सकता है।

आप इसके बारे में सर्वर गाइड , और अन्य जगहों पर कुछ और पढ़ सकते हैं ।

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