Dpkg और aptitude / apt-get में क्या अंतर है?


125

किसी सॉफ़्टवेयर को इनस्टॉल करने के दौरान, स्वचालित रूप से डाउनलोड और इंस्टॉल किए dpkg -i packageA.debजाने के packageAलिए आवश्यक निर्भरताएँ डाउनलोड हो जाएंगी? यह कैसे उपयोग करने से अलग है apt-getया aptitude?


संबंधित (विशेष रूप से निर्भरता के बारे में): askubuntu.com/q/40779/250300
मेलेबियस

जवाबों:


168

नहीं, dpkgकेवल एक पैकेज स्थापित करता है, इसलिए dpkg -i packageName.debकेवल इस डीब पैकेज को स्थापित करना, और आपको किसी भी निर्भरता की सूचना देगा जिसे स्थापित करने की आवश्यकता है, लेकिन यह उन्हें स्थापित नहीं करेगा , और यह क्योंकि अच्छी तरह से कॉन्फ़िगर नहीं करेगा packageName.deb... निर्भरताएं हैं वहाँ नहीं।

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

मैं इस समय के बारे में सोचना पसंद करता हूं (निम्नलिखित केवल मुझे अनुभव से बोल रहा है। यह केवल आपको इस पूरी चीज का विचार देने के लिए है):

  • वे एक "पैकेज" में किसी एप्लिकेशन की फ़ाइलों को "स्टोर" करने के तरीके के साथ आए ताकि इसे आसानी से स्थापित किया जा सके। तो, डीब पैकेज ( .debएक्सटेंशन फ़ाइल ) का जन्म हुआ।

    एक .debफ़ाइल में चलाने के लिए एक एप्लिकेशन द्वारा आवश्यक फाइलें होती हैं, साथ ही (मैं इसे कॉल करना पसंद करता हूं) "मेटा-डेटा" जो अन्य जानकारी रखता है, जैसे कि निर्भरता के नाम जो एप्लिकेशन को चाहिए। यदि आप किसी .debफ़ाइल की सामग्री देखना चाहते हैं , तो आप कमांड का उपयोग कर सकते हैं dpkg -c packageName.deb, और यदि आप इस "मेटा-डेटा" जानकारी को देखना चाहते हैं, तो कमांड का उपयोग करें dpkg -I pacakgeName.deb(और यदि आप केवल निर्भरता देखना चाहते हैं, तो dpkg -I packageName.deb | grep Depends)।

  • उन्हें इन .debफ़ाइलों को स्थापित करने के लिए एक उपकरण की आवश्यकता थी , इसलिए वे dpkgउपकरण के साथ आए । यह उपकरण, हालांकि, केवल .debफ़ाइल को स्थापित करेगा, लेकिन इसकी निर्भरता को स्थापित नहीं करेगा क्योंकि इसमें वे फाइलें नहीं हैं और निर्भरता को खींचने के लिए "रिपॉजिटरी" तक इसकी पहुंच नहीं है।

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

aptitudeफिर साथ आया। यह पुस्तकालयों apt-getका उपयोग करता है और वास्तव में एक इंटरैक्टिव यूआई (उपयोगकर्ता इंटरफ़ेस) है। यदि आप इस UI को देखना चाहते हैं, तो बस aptitudeटर्मिनल में टाइप करें। वह है aptitude । यह पुस्तकालयों की तुलना में अधिक विकल्प और भत्ते प्रदान करने का लाभ उठाता है apt-get। उदाहरण के लिए, aptitudeस्वचालित रूप से पात्र पैकेजों को हटा देगा, जबकि ऐसा apt-getकरने के लिए एक अलग कमांड की आवश्यकता होती है। लेकिन, अंत में, कर sudo aptitude install packageName.debकरना चाहिए कम से कम के रूप में ही sudo apt-get install packageName.deb। यहां और वहां सूक्ष्म अंतर हो सकते हैं जिनके बारे में मुझे नहीं पता है, लेकिन वे दोनों निर्भरता की तलाश करेंगे और यह सब सामान करेंगे। और के बीच के अंतर के बारे में अधिक जानकारी के लिए आप यहाँ उत्तर पढ़ सकते हैं ।aptitudeapt-get

इसके अलावा, aptitudeसुपर गाय पॉवर्स नहीं है।

संपादित करें: जाहिर है, यह करता है। aptitude -v[v[v[v[v]]]] moo

aptitudeडिफ़ॉल्ट रूप से स्थापित नहीं किया जा सकता है। इसे स्थापित करने के लिए, इसे करें sudo apt-get install aptitudeया क्लिक करें: योग्यतायोग्यता स्थापित करें


अतिरिक्त

निम्नलिखित जानकारी वास्तव में सीधे जवाब नहीं देती है " dpkg और aptitude / apt-get के बीच क्या अंतर है? " लेकिन यह बड़ी तस्वीर में योगदान देता है।


से कार्लोस Campderrós ' नीचे टिप्पणी :

gdebiएक और उपकरण है जो बीच apt-getऔर की तरह मिश्रण है aptitude। जब आप एक .debपैकेज ( gdebi packageName.deb) स्थापित करने के लिए इसका उपयोग करते हैं , तो यह लापता निर्भरता की पहचान करेगा, उनका उपयोग करके स्थापित करेगा apt-get, और फिर अंत में उपयोग करके पैकेज को स्थापित और कॉन्फ़िगर करेगा dpkg। यहां तक ​​कि एक सरल और साफ-सुथरा GUI है जो आपको.deb पैकेज के बारे में जानकारी देता है , पैकेज में शामिल फाइलें, और किन निर्भरताओं को स्थापित करने की आवश्यकता है। इस GUI को देखने के लिए, आप करेंगे gdebi-gtk packageName.deb। आप दे सकते हैं gdebiके साथ इसे स्थापित करके एक कोशिश sudo apt-get install gdebi: इस पर क्लिक करें या gdebiGdebi स्थापित करें


मैं किसी को भ्रमित नहीं करना चाहता, लेकिन सिर्फ आपको तस्वीर का एक और हिस्सा देने के लिए, RPM नामक एक और लोकप्रिय लिनक्स पैकेज प्रारूप है, और इसकी फ़ाइलों का .rpmविस्तार है। यह पैकेज प्रारूप RPM- आधारित लिनक्स वितरण (जैसे Red Hat, CentOS, और Fedora) पर उपयोग किया जाता है। वे rpmपैकेज को स्थापित करने के लिए कमांड का उपयोग करते हैं , और yumइसके लिए फ्रंट-एंड है, यह चतुर है। तो उनकी .rpmफाइलें हमारी .debफाइलें हैं, उनका rpmउपकरण हमारा dpkgउपकरण है, और उनका yumहमारा है apt-get

से धान Landau के नीचे टिप्पणी :

alienएक उपकरण है जो बीच .rpmऔर .debसंकुल में परिवर्तित होता है। इसलिए यदि आप कभी उस स्थिति में आते हैं जहां आपके पास एक .rpmपैकेज है, और आप अपने उबंटू (या किसी अन्य डेबियन-आधारित डिस्ट्रो) में स्थापित करना चाहते हैं, तो आप alien rpm_packageName.rpmइसे बदलने के लिए कमांड का उपयोग कर सकते हैं .deb, और फिर इसका उपयोग करके इंस्टॉल कर सकते हैं dpkg। आप रिवर्स कर सकते हैं (परिवर्तित .debकरने के लिए .rpmउपयोग करते हुए) alien -r packageName.deb


5
यह बहुत उपयोगी था और ठीक वही है जिसकी मुझे तलाश थी। टीएक्स!
अनिकेत ठाकुर

4
इसके अलावा, आप उपयोग कर सकते हैं gdebi( apt-get install gdebi-core) कि मिश्रण apt-get/ aptitudeसाथ dpkg। आप इसे कॉल करते हैं gdebi some_package.debऔर यह इसकी निर्भरता का विश्लेषण करेगा, apt-getलापता लोगों को स्थापित करने के लिए कॉल करेगा और जब सभी निर्भरता पूरी हो जाएगी, तो dpkgअंत में अपने पैकेज को स्थापित करने के लिए कॉल करें ।
कार्लोस कैंपडरो

2
@ आला अतिरिक्त के तहत , आप यह भी उल्लेख कर सकते हैं कि alienसंकुल को बीच में परिवर्तित करता है .rpmऔर .deb। यह RPM के लिए उपलब्ध पैकेज के लिए उपयोगी है, लेकिन DEB (या इसके विपरीत) के लिए नहीं है। उदाहरण के लिए, alien packagename.rpmइसे उबंटू के लिए उपयोग करने योग्य बनाना।
धान लैंडौ

1
@AlaaAli के aptitudeलिए कोई फ्रंटएंड नहीं है apt-getदोनों कार्यक्रम libapt-pkgपुस्तकालय के लिए व्यय हैं ।
एलियाह कगन

1
@edwardtorvalds AskUbuntu एक प्रश्न और उत्तर साइट है। हजारों पुराने प्रश्नों की साइट पर यहां अपने उत्तर की खोज करें, और यदि आप इसे नहीं पाते हैं, तो अपना प्रश्न पूछें, मुझसे अधिक अनुभवी लोग उम्मीद करेंगे कि उत्तर भी मिलेंगे।
आला अली

5

apt-get

पैकेज प्रबंधन फ़ाइल के apt-getसाथ हाथ से चलाता है /etc/apt/sources.list

apt-get install <package_name> आपके कंप्यूटर पर एक नया पैकेज स्थापित करता है।

apt-get build-dep <package_name> यह कमांड रिपॉजिटरी खोजता है और इसके लिए बिल्ड निर्भरता स्थापित करता है। यदि पैकेज रिपॉजिटरी में नहीं है, तो यह एक त्रुटि लौटाएगा।

apt-get install <package1_name> <package2_name> <package3_name> apt-get कई पैकेज स्थापना की अनुमति देता है। एक स्थान के साथ संकुल को अलग करें।

auto-apt run <command_string> जब आह्वान किया जाता है, तो ऑटो-एप कमांड स्वचालित रूप से गुम फ़ाइल एक्सेस पर पैकेज स्थापित करता है। यदि कोई प्रोग्राम अनइंस्टॉल किए गए पैकेज में संबंधित फ़ाइल को एक्सेस करने की कोशिश करता है, तो ऑटो-एप उस पैकेज का उपयोग करके इंस्टॉल हो जाएगा apt-get। इस सुविधा को काम करने के लिए उपयुक्त और सुडोल की आवश्यकता होती है।

Apt-get अनुदेश पृष्ठ पर जाएं

योग्यता

aptitudeकी कार्यक्षमता प्रदान करता है dselectऔर apt-getसाथ ही साथ कई अतिरिक्त सुविधाएँ या तो प्रोग्राम में नहीं मिलती हैं।

aptitude इसका अपना एक शेल है जो कीबोर्ड या माउस सक्रिय है और एक टर्मिनल विंडो में चलता है

aptitude build-dep <package> - संकुल की निर्माण-निर्भरता स्थापित करें - जिसका अर्थ है कि संकुल को स्रोत स्रोत के संकलन (या निर्माण ) के लिए आवश्यक है । उदाहरण के लिए, कई पैकेजों की जरूरत है debhelperया autotoolsबनाया जाना है, लेकिन उन्हें चलाने की जरूरत नहीं है।

एप्टीट्यूड इंस्ट्रक्शन पेज पर जाएं

dpkg

डेबियन पैकेजों को स्थापित करने, बनाने, हटाने और प्रबंधित करने का एक उपकरण है। संपर्क

dpkg -i <package.deb>आपके कंप्यूटर पर एक डेबियन पैकेज स्थापित करता है। यह किसी भी निर्भरता को स्थापित नहीं करता है जहां तक ​​मैं मदद फ़ाइलों से पता लगा सकता हूं।

विवरण के लिए dpkg --helpएक टर्मिनल विंडो में टाइप करें ।

गाइड

फ़ाइल प्रबंधन के लिए एक गाइड यहाँ पाया जा सकता है


0

मुझे लगता है कि सबसे महत्वपूर्ण बात और एक अंतर यह भी है कि आपको apt-getपैकेज को स्थापित करने के लिए उपकरण का उपयोग करना चाहिए । ( aptया aptitudeठीक भी है)।

इसका कारण यह है कि dpkgनिर्भर पैकेजों को स्थापित किए बिना पैकेजों को स्थापित करना है। उसके कारण सिर्फ एक पैकेज स्थापित करने से dpkg, बाद में समस्या हो सकती है जहां निर्भरता समाधान टूटी हुई प्रणाली के साथ समाप्त हो सकता है।

पैकेजों को स्थापित करने के लिए आपको कमांड लाइन apt-getया apt(14.04 से) टूल का उपयोग करना चाहिए । ये उपकरण dpkgआपके लिए उपयोग कर रहे हैं और एक ही समय में अंदर निर्भरता संकल्प तंत्र है।

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