मेरा सवाल सरल है - मैं dpkg के बारे में अधिक जानना चाहता हूं - यह क्या करता है?
मेरा सवाल सरल है - मैं dpkg के बारे में अधिक जानना चाहता हूं - यह क्या करता है?
जवाबों:
जैसा कि कहा गया है, 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
वर्तमान में स्थापित पैकेजों की सूची का उपयोग करना।
dpkg एक .deb से स्थापित करने या पहले से स्थापित संकुल को हटाने का एक कमांड लाइन तरीका है। उदाहरण के लिए यदि आपके पास अपने होम डायरेक्टरी में .deb फ़ाइल है, तो रनिंग dpkg -i yourpackage.deb
आपके लिए उस पैकेज को स्थापित करेगा। मुझे यह उपयोगी कम से कम मेरे लिए लगता है क्योंकि कभी-कभी .deb फ़ाइल पर क्लिक करने पर यह उबंटू सॉफ़्टवेयर केंद्र को लोड करता है लेकिन वास्तव में इसे कभी भी स्थापित नहीं करता है या इसमें कोई समस्या नहीं है।
हमेशा की तरह, man
कमांड शुरू करने के लिए एक शानदार जगह है।
man dpkg
फिर भी आप सभी विकल्प दे सकते हैं:
dpkg डेबियन-आधारित सिस्टम के लिए एक पैकेज मैनेजर है। यह संकुल को स्थापित, निकाल और निर्मित कर सकता है, लेकिन अन्य संकुल प्रबंधन प्रणालियों के विपरीत यह स्वचालित रूप से संकुल और उनकी निर्भरता को डाउनलोड और स्थापित नहीं कर सकता है।
तो मूल रूप से यह निर्भरता को हल किए बिना उपयुक्त है, और यह .deb फ़ाइलों को स्थापित करने के लिए उपयोग किया जाता है।
मैं आपको हालांकि चेतावनी देता हूं: ज्यादातर मामलों में, dpkg के उपयोग से संकुल को अनइंस्टॉल करना, अनुशंसित नहीं है। एक पैकेज प्रबंधक का उपयोग करना बेहतर है जो निर्भरता को संभालता है, यह सुनिश्चित करने के लिए कि सिस्टम एक सुसंगत स्थिति में है।
उदाहरण के लिए dpkg -r zip
आप ज़िप पैकेज का उपयोग कर सकते हैं, लेकिन कोई भी पैकेज जो इस पर निर्भर है वह अभी भी स्थापित किया जाएगा और अब सही ढंग से काम नहीं कर सकता है।
आप इसके बारे में सर्वर गाइड , और अन्य जगहों पर कुछ और पढ़ सकते हैं ।