सवाल योग्यता बनाम apt-get: उपयोग करने के लिए अनुशंसित (उर्फ "दाएं") उपकरण कौन सा है?


कुछ समय पहले मैंने इसे पढ़ा था aptitude डेबियन-आधारित सिस्टम पर स्थापना के लिए पसंदीदा उपकरण है। लेकिन जब आप डेबियन-आधारित सिस्टम को प्रशासित करने के तरीके के आसपास खोज करते हैं, तो योग्यता का शायद ही कभी उल्लेख किया जाता है। ज्यादातर लोग पसंद करते हैं apt-get - और यह डेबियन विकी पृष्ठों के लिए भी सच है!

इस प्रकार मैं सोच रहा हूं कि क्या मुझे कुछ याद आया है। उपयोग करने का सही उपकरण कौन सा है?


93
2018-01-09 09:42


मूल


दिलचस्प बात यह है कि उबंटू अब स्थापित नहीं है aptitude डिफ़ॉल्ट रूप से। - Mechanical snail
मेरे लिए सबसे महत्वपूर्ण अंतर यह है कि दस्तावेज़ों को अच्छी तरह से पढ़ने के बाद, मुझे योग्यता के माध्यम से पैकेज का स्रोत प्राप्त करने का कोई तरीका नहीं मिल सकता है। apt-get source package-name यह करेगा, लेकिन मैंने कोई योग्यता समतुल्य नहीं देखा है - EricR
एक बात यह है कि aptitude search package-name योग्यता में काम करता है। एक और है aptitude why package-name भी उपयोगी है लेकिन अंदर नहीं है apt-get। मैं भी चीज की कमांड लाइन aptitude की तुलना में थोड़ा साफ है apt-get। लेकिन जैसा कि आपने देखा, वहां हैं aptitude build-dep package-name लेकिन नहीं aptitude source package-name। - Anders


जवाब:


aptitude तथा apt-get कई कार्यों के लिए समान कार्य करें, लेकिन सबसे कठिन मामलों के लिए, जैसे वितरण उन्नयन (apt-get dist-upgrade बनाम aptitude full-upgrade), उनके पास अलग-अलग नियम हैं, और योग्यता के नियम अभ्यास में लगभग हमेशा बेहतर होते हैं जहां वे असहमत हैं।

कारण के लिए आप अधिक दस्तावेज देखें apt-get ऊपर aptitude ज्यादातर जड़ता है: aptitude एपीटी के लिए लंबे समय तक अनुशंसित फ्रंट एंड नहीं किया गया है, इसलिए अधिकांश दस्तावेज अपडेट नहीं किए गए हैं, और ऐसे बहुत सारे लोग हैं जो फायदे को पहचानते हैं aptitude ऊपर apt-get लेकिन उपयोग करें apt-get reflexively।

मुझे हाल ही में उस बिंदु पर पहुंचा है जहां मैं आमतौर पर अनुसरण करता हूं apt के साथ iऔर नहीं - जब मैं टाइप करता हूं।

परिशिष्ट भाग ध्यान दें कि नियमों का उपयोग किया जाता है apt-get तथा aptitude लक्ष्य बढ़ रहे हैं - टिप्पणियों में हबर्ट नोट्स के रूप में, डेबियन लेनी से अनुशंसित अपग्रेड पथ अब उपयोग करता है apt-get, नहीं aptitude। यह इस तथ्य को दर्शाता है कि apt-get वर्तमान पैकेज के बारे में कम स्थिति का ट्रैक रखता है aptitude, और इसलिए एपीटी राज्य के बारे में चिंता करने की आवश्यकता नहीं है "साफ" नहीं, और क्योंकि apt-get नियम होने के मुकाबले ज्यादा चालाक होते हैं। मैं अभी भी उपयोग और सिफारिश करता हूं aptitude ऊपर apt-get, लेकिन यह एक और अधिक अनुशंसित सिफारिश है


72
2018-02-26 19:42



इसके अलावा, योग्यता आसानी से संघर्ष के संभावित संकल्पों को ब्राउज़ करने की अनुमति देती है, जबकि एपीटी-प्राप्त करने के साथ आमतौर पर आपको केवल एक संभावित तरीका दिखाया जाता है और या तो आप इसे स्वीकार करते हैं या आपको हाथ से संकल्प करना पड़ता है (एफ.ई. डीपीकेजी का उपयोग करके)। - liori
apt-get अधिक मेमोरी-कुशल होने का लाभ है। अधिकांश उपयोगकर्ताओं के लिए यह ध्यान देने योग्य नहीं है; जब तक मैंने 32 एमबी रैम के साथ एक पूर्ण डेबियन इंस्टॉल पर संकुल को अपग्रेड करने की कोशिश नहीं की, तब तक मुझे वास्तव में इसके बारे में पता नहीं था। aptitudeप्रति घंटे लगभग एक घंटे के लिए स्वैप में थ्रैशिंग समाप्त हो गया; apt-get काफी तेजी से था। - intuited
आधिकारिक डेबियन निचोड़ दस्तावेज स्पष्ट रूप से उपयोग नहीं करता है aptitude लेनी से अपग्रेड के लिए हालांकि यह पिछले अपग्रेड के लिए समर्थित था, इसलिए मुझे नहीं लगता कि यह केवल जड़ता है ... - Hubert Kario
@ हबर्टकेरियो - हां, वास्तव में। मैंने अपना जवाब अपडेट कर लिया है। - Charles Stewart
मैं केवल यही कह सकता हूं apt-get लगभग हमेशा त्रुटियों को फेंकता है (उबंटू सर्वर 12.10, 14.04 से अनुभव) जबकि aptitude वास्तव में कुछ कर सकते हैं। मैं अभी भी समझ में नहीं आता कि अभी भी कितना उपयुक्त है। - Totty.js


aptitude यह दिखाने के लिए सुविधाजनक बनाता है कि आपने खोज में कौन से प्रोग्राम पहले से ही सिस्टम पर स्थापित किए हैं (की मदद से grep):

aptitude search flash | grep ^i

वास्तव में, aptitudeजो खोज आप पाइपिंग करते हैं उससे कहीं अधिक शक्तिशाली है grep, क्योंकि यह प्रासंगिक खोज का समर्थन करता है:

उदाहरण के लिए, यह संकुल नाम में 'फ्लैश' वाले सभी संकुल को संस्थापित करता है जो स्थापित हैं:

aptitude search '~iflash'

"लघु रूप" का समकक्ष "लंबा रूप" ~i:

aptitude search '?installed(flash)'

ध्यान दें कि डिफ़ॉल्ट रूप से खोज पैटर्न निःशुल्क (अनचाहे) हैं। उन्हें एंकर करने के लिए, आपको एंकर पैटर्न का उपयोग करने की आवश्यकता है '^'(स्ट्रिंग की शुरुआत) और / या'$'(अंत-स्ट्रिंग)।

उन सभी संकुलों को ढूंढने के लिए जिनके नाम या तो 'ttf' या 'font' से शुरू होते हैं:

aptitude search '(^ttf|^font)'

(नोट: यह एक बग के लिए एक कामकाज है aptitude, के सही regex के रूप में '^(ttf|font)' ठीक तरह से काम नहीं करता है - यह उन पैकेजों को पाता है जिनके नाम 'ttf' से शुरू होते हैं या शामिल 'फ़ॉन्ट'।)

अन्य निफ्टी aptitude विशेषताएं:

अपने फर्मवेयर 'फर्मवेयर' के साथ सभी संकुल दिखाएं जिनके पास उनके विवरण में 'वायरलेस' भी है:

aptitude search 'firmware ~dwireless'

या लंबा रूप:

aptitude search '?and(?name(firmware),?description(wireless))'

(नोट: संक्षिप्त रूप में, स्थान-सीमित तर्क उद्धरण के भीतर एंडेड होते हैं; यदि अलग argv [] कमांडलाइन तर्क के रूप में पारित किया जाता है तो वे ऑर्ड होते हैं।)

p   atmel-firmware       - Firmware for Atmel at76c50x wireless networking chips.
p   firmware-atheros     - Binary firmware for Atheros wireless cards
...
p   libertas-firmware    - Firmware for Marvell's libertas wireless chip series
p   zd1211-firmware      - Firmware images for the zd1211rw wireless driver

~U उन सभी संकुल दिखाता है जो अपने मौजूदा संस्करणों से नए संस्करणों के साथ अपग्रेड करने योग्य हैं:

# aptitude update ; aptitude versions '~U'
Package virtualbox-4.1:            
i   4.1.18-78361~Debian~squeeze                       100
p   4.1.20-80170~Debian~squeeze     <NULL>            500

पैकेज दिखाएं जो 'gcc-multilib' की अनुशंसा करते हैं

$ aptitude search '~DRecommends:gcc-multilib'
i   libc6-dev-i386   - Embedded GNU C Library: 32-bit development libraries for AMD64

समझाओ कि क्यों 'फ्यूज-यूटिल' को स्थापित करने की आवश्यकता हो सकती है

$ aptitude why fuse-utils
i   xorg           Depends    xterm | x-terminal-emulator
pi  gnome-terminal Provides   x-terminal-emulator
pi  gnome-terminal Recommends gvfs
pi  gvfs           Depends    libgdu0 (>= 2.29.90)
pi  libgdu0        Depends    udisks (< 1.1.0)
pi  udisks         Recommends ntfsprogs
pi  ntfsprogs      Depends    fuse-utils (> 2.5.0)

(यह उदाहरण सभी "अनुशंसाओं" पैकेजों को स्थापित करने के निचोड़ (?) के बाद से डिफ़ॉल्ट से उत्पन्न पागलपन दिखाता है। Gnome-terminal को स्थापित करना ntfsprogs और fuse-utils, egad स्थापित करना समाप्त होता है! मुझे लगता है कि अधिकांश लोग केवल टर्मिनल परिप्रेक्ष्य चाहते हैं और अंतर्निहित एनटीएफएस एकीकरण नहीं, जो वैकल्पिक है, जब तक कि वे इसे निर्दिष्ट नहीं करते हैं।)

"मेल-ट्रांसपोर्ट-एजेंट" सेवा प्रदान करने वाले सभी पैकेज खोजें:

$ aptitude search '?provides(mail-transport-agent)'
p   citadel-mta          - complete and feature-rich groupware server (mail transport agent)
...
p   nullmailer           - simple relay-only mail transport agent
p   postfix              - High-performance mail transport agent
i   sendmail-bin         - powerful, efficient, and scalable Mail Transport Agent
p   ssmtp                - extremely simple MTA to get mail off the system to a mail hub
p   xmail                - advanced, fast and reliable ESMTP/POP3 mail server

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

$ aptitude search '~i!(~E|~M)' -F '%p'

दुर्भाग्यवश, यह सामान बल्कि खराब दस्तावेज और खोजने में मुश्किल है, लेकिन यहाँसबसे अच्छा संदर्भ है ('योग्यता' रखरखाव से)।


19
2018-06-20 10:53



खोज सुविधाएं उपलब्ध हैं apt-get के जरिए apt-cache search NAME - EricR
@EricR सच है लेकिन मुझे इनके रूप में खोज क्षमताओं नहीं मिलीं - niceman


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

इसलिए, सरल आवश्यकताओं के लिए, आप सरल उपकरण का उपयोग कर सकते हैं, जबकि अधिक जटिल आवश्यकताओं के लिए, आप अधिक परिष्कृत उपकरण (योग्यता) पर भरोसा कर सकते हैं।

डेबियन एफएक्यू से उद्धृत: "योग्यता dselect और apt-get की कार्यक्षमता प्रदान करता है, साथ ही साथ प्रोग्राम में कई अतिरिक्त सुविधाएं नहीं मिलती हैं।"


4
2017-08-15 21:52





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

यही कारण है कि मैं व्यक्तिगत रूप से सोचता हूं कि योग्यता हमेशा बेहतर होती है।


3
2017-08-16 00:54



उद्धरण वांछित है, लेकिन यह एक आकर्षक अंतर होगा। - Kzqai
प्रशस्ति पत्र: debian-handbook.info/browse/stable/... - deizel
वास्तव में apt-get साथ ही साथ भी करता है apt-get autoremove <package-name>। दोनों apt-get तथा aptitude ऑटो-स्थापित पैकेज चिह्नित करें - Legionair
परंतु aptitude हर बार इस्तेमाल होने पर ऑटो पैकेज को साफ करें। जबकि apt-get आपको उस स्पष्ट को शुरू करने की आवश्यकता है। - Anders


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


2
2018-06-21 08:49