उपयुक्तता और योग्यता के बीच अंतर क्या है?


56

मुझे नहीं लगता कि सॉफ्टवेयर स्थापित करने के लिए न्यूनतम इंस्टॉल में दो अलग-अलग कार्यक्रम क्यों हैं। क्या वे एक ही काम नहीं करते? क्या कोई बड़ा अंतर है? मैंने हर जगह पढ़ा है कि एप्टीट्यूड से अधिक योग्यता का उपयोग करें लेकिन मुझे अभी भी अंतर नहीं पता है

जवाबों:


48

aptitude, apt-get / apt-cache की तरह dpkg के लिए एक आवरण है, लेकिन यह खोज / स्थापित / हटाने / क्वेरी करने के लिए वन-स्टॉप-शॉप टूल है। कुछ उदाहरण जो उपयुक्त आपूर्ति नहीं कर सकते हैं:

$ aptitude why libc6
i   w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.

$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-perl (< 1.15-2), 
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs 
 on the system. This package includes shared versions of the standard 
 C library and the standard math library, as well as many others.

10
का उल्लेख नहीं करने के लिए: $ योग्यता बदलाव का बैश
पृ

अन्य चालें जो aptitudeजानती हैं कि नवीनतम aptभी नहीं कर सकते हैं: नाम या विवरण के aptitude search '~i linux'साथ संकुल की खोज linuxजो स्थापित हैं; aptitude search '~o'अप्रचलित पैकेजों को सूचीबद्ध करता है (स्थापित पैकेज जो अब किसी भंडार द्वारा प्रदान नहीं किए जाते हैं); aptitude search '!~M ~i'उन पैकेजों को दिखाता है जो स्वचालित रूप से स्थापित के रूप में चिह्नित नहीं हैं; aptitude search '~i lib.*-dev'शो विकास पुस्तकालयों स्थापित किया है और आप की जगह ले सकता searchके साथ markautoया unmarkautoके रूप में स्वत: या मैन्युअल स्थापित इन पैकेजों को चिह्नित करने के।
मिकको रेंटालिनेन

44
mikeage@linode ~$ aptitude -h | tail -n 1
              This aptitude does not have Super Cow Powers.
mikeage@linode ~$ apt-get -h | tail -n 1
                   This APT has Super Cow Powers.
mikeage@linode ~$ aptitude moo
    There are no Easter Eggs in this program.
mikeage@linode ~$ apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...
mikeage@linode ~$ aptitude -v moo
There really are no Easter Eggs in this program.
mikeage@linode ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
mikeage@linode ~$ aptitude -vvv moo
Stop it!
mikeage@linode ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
mikeage@linode ~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
mikeage@linode ~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course. 

19

आधिकारिक उपकरण जो वर्तमान में डेबियन इंस्टॉलर के भीतर उपयोग किया जाता है और रिलीज नोट्स में अनुशंसित है aptitude

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

लेकिन योग्यता लिबेट लाइब्रेरी पर आधारित है (यह dpkg का डायरेक्ट रैपर नहीं है) और जैसा कि यह aptपैकेज पर निर्भर करता है इसलिए आप aptitude को apt-get (जो apt पैकेज में भी है) के बिना इंस्टॉल नहीं किया जा सकता है।

$ dpkg --status aptitude| grep Depends
Depends: libapt-pkg-libc6.9-6-4.7, [...]
$ dpkg --status apt|grep Provides
Provides: libapt-pkg-libc6.9-6-4.7
$ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
apt: /usr/bin/apt-get

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

आप मेरा लेख भी पढ़ सकते हैं, योग्यता, ... आपके लिए सही पैकेज प्रबंधक चुनें


7

aptitudeयाद रखें कि आपने कौन से पैकेज जानबूझकर स्थापित किए हैं और जो स्वचालित रूप से निर्भरता को पूरा करने के लिए स्थापित किए गए हैं। एक पैकेज को हटाने पर एप्टीट्यूड आपके सिस्टम को व्यवस्थित रखने के लिए स्वचालित रूप से स्थापित पैकेजों को हटा देगा। apt-getस्मार्ट नहीं है।

aptitudeएक बार जब आप किसी पैकेज के विभिन्न संस्करणों के साथ विभिन्न रिपॉजिटरी का उपयोग करेंगे तो यह एक अनिवार्य उपकरण बन जाएगा। कल्पना कीजिए कि आप backports.org या अनौपचारिक रिपॉजिटरी जैसे debian-multimedia.org के साथ काम कर रहे हैं । फिर aptitudeउपलब्ध संस्करण संख्या को दिखाएगा (एक निश्चित पैकेज के विवरण पृष्ठ के नीचे) और आपको एक का चयन करने की अनुमति देगा।

यदि आप ऐसी स्थिति में आ जाते हैं, जहां अनौपचारिक रिपॉजिटरी के ऐसे उपयोग के कारण प्रोग्राम संघर्ष होता है, तो आपको शीर्ष पर "ब्रोकन: ..." डिस्प्ले दिखाई देगा । आप l ~ b (सीमा / ध्वज / टूटा हुआ) टाइप कर सकते हैं और बस संकुल की एक सूची प्राप्त कर सकते हैं जो एक दूसरे के साथ संघर्ष करते हैं। मैन्युअल रूप से संघर्ष को हल करना बहुत आसान बनाता है।

इसके अलावा आप lपैकेज सूची को सीमित करने के लिए " " का उपयोग कर सकते हैं । कल्पना करें कि आप उन पैकेजों की तलाश कर रहे हैं जो " ओपनऑफ़िस " से शुरू होते हैं, फिर " l" दबाएं और " ^openoffice" (यह एक नियमित अभिव्यक्ति है) और आप बस उन पैकेजों को देखेंगे। मेनू से एक "फ्लैट पैकेज सूची" चुनें और आप अपने लक्ष्य तक जल्दी पहुंच जाएंगे।

पूरी हैंडबुक बहुत बड़ी है, जो आपको कई और फिल्टर और संभावनाएं प्रदान करती है। यहां तक ​​कि अगर आपको नहीं पता कि उनके aptitudeलिए एक आसान प्रतिस्थापन है apt-getऔर आप इसे सामान्य मापदंडों के साथ उपयोग कर सकते हैं:

aptitude install ... (install or upgrade a package)
aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
aptitude purge ... (remove the package completely including your configuration)

2
दरअसल, लेनी के रूप में, apt-get भी संकुल को केवल आपके द्वारा स्पष्ट रूप से पूछी गई किसी चीज की निर्भरता के रूप में स्थापित करता है। मैं स्वयं एप्टीट्यूड का उपयोग करता हूं, लेकिन apt-get autoremoveअब उन पैकेजों को हटा देता है जिन्हें एक पैकेज की निर्भरता के रूप में स्थापित किया गया था जिसे तब से हटा दिया गया है।
टेलीमेकस

अब आप बस का उपयोग भी कर सकते हैं aptऔर यह उस सामान का मिश्रण कर सकता है जो apt-getऔर apt-cacheकरता था। उदाहरण के लिए, apt search fooउन पैकेजों को सूचीबद्ध करेगा जिनमें fooनाम या विवरण शामिल हैं। यदि उपलब्ध हो तो apt install fooपैकेज स्थापित किया fooजाएगा और apt policy fooवर्तमान में स्थापित संस्करण और पैकेज के सभी उपलब्ध संस्करणों को सूचीबद्ध करेगा foo
मिकोको रैंटलैनेन

aptitudeअभी भी की तुलना में अधिक कर सकते हैं aptलेकिन सादे aptअक्सर बहुत तेजी से है।
मिकोको रैंटलैनेन

5

जब आप aptitudeबिना किसी तर्क के साथ चलते हैं , तो एक बहुत कंसोल UI प्रदान करने के अलावा , यह विभिन्न apt-*कमांडों (और dselect) को एक उपयोगिता में जोड़ता है ।

Apt-get का उपयोग करके पैकेज की खोज करना और उसे स्थापित करना:

apt-cache search somepkg
apt-get install somepkg

..लेकिन योग्यता के साथ यह एक ही आदेश है:

aptitude search somepkg
aptitude install somepkg

aptitudeकुछ अतिरिक्त विशेषताएं हैं, जैसे कि aptitude changelog somepkgऔर पैकेज रखने जैसी चीजें (उन्हें अपग्रेड होने से रोकने के लिए) - कुछ भी जो आप अन्य कमांड / विधियों के माध्यम से हासिल नहीं कर सकते हैं, यह उपयोग करने के लिए अधिक एकीकृत और अच्छा है।


3
बहुत बुरा यह एक "उपयुक्त कैश नीति" समकक्ष नहीं है।
हयालसी

4

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

ऐसा लगता है कि apt-get के नवीनतम संस्करणों में एक समान कार्यक्षमता है: http://www.psychocats.net/ubuntu/aptitude


aptitudeया aptवास्तव में उन पैकेजों की सूची नहीं रखता है जो किसी भी पैकेज के लिए निर्भरता के रूप में स्थापित किए गए थे। यह केवल ट्रैक करता है यदि पैकेज मैन्युअल रूप से या स्वचालित रूप से स्थापित किया गया था। और अगर एक पैकेज को स्वचालित रूप से स्थापित किया गया है और कोई अन्य पैकेज निर्भर या इसकी सिफारिश नहीं करता है, तो इसे apt autoremoveया के साथ हटा दिया जाएगा aptitude dist-upgrade
मिकको रैंटलैनेन

3

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


1

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

यह वास्तव में कुछ भयानक पैकेज प्रबंधन करता है।


1

सबसे बड़ा अंतर है: बिना किसी पैरामीटर के "एप्टीट्यूड" टाइप करें।

यह आपको एक पाठ आधारित उपयोगकर्ता इंटरफ़ेस देता है, आप खोज करने / नेविगेट करने के लिए कीबॉर्ड का उपयोग कर सकते हैं, निर्भरता, रिवर्स निर्भरता, पैकेज के सभी उपलब्ध संस्करणों पर जानकारी देख सकते हैं, और आप उस स्क्रीन से उन पर कोई भी पैकेज प्रबंधक ऑपरेशन कर सकते हैं।

आप परिवर्तनों की समीक्षा करने के लिए "जी" दबा सकते हैं, यदि आवश्यक हो तो पैकेज परिवर्धन और निष्कासन को संशोधित कर सकते हैं और सभी लंबित कार्यों को लागू कर सकते हैं।

एक ssh कनेक्शन या सादे पुराने टर्मिनल पर पैकेज प्रबंधन का एक शानदार दृश्य तरीका।

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