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


94

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

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


दिलचस्प है कि Ubuntu अब aptitudeडिफ़ॉल्ट रूप से स्थापित नहीं करता है।
मैकेनिकल घोंघा

2
मेरे लिए सबसे महत्वपूर्ण अंतर यह है कि डॉक्स को अच्छी तरह से पढ़ने के बाद, मैं एप्टीट्यूड के माध्यम से पैकेज के स्रोत को प्राप्त करने का कोई तरीका नहीं खोज सकता। apt-get source package-nameयह करना होगा, लेकिन मैं कोई योग्यता बराबर देखा है
EricR

2
एक बात यह है कि aptitude search package-nameयोग्यता में काम करता है। एक अन्य aptitude why package-nameभी उपयोगी है लेकिन अंदर नहीं है apt-get। मैं यह भी कहता हूं कि कमांड लाइन की aptitudeतुलना में थोड़ी सफाई की जाती है apt-get। लेकिन जैसा कि आपने देखा, aptitude build-dep package-nameलेकिन नहीं हैं aptitude source package-name
एंडर्स

जवाबों:


73

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

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

मैं हाल ही में बिंदु है जहां मैं आमतौर पर पालन करने के लिए मिल गया है aptएक साथ iऔर नहीं एक -जब मैं टाइप करें।

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


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

20
apt-getअधिक स्मृति-कुशल होने का लाभ है। यह अधिकांश उपयोगकर्ताओं के लिए ध्यान देने योग्य होने की संभावना नहीं है; मैं वास्तव में इसके बारे में पता नहीं था जब तक मैं 32MB RAM के साथ एक पूर्ण डेबियन इंस्टॉल पर संकुल को अपग्रेड करने की कोशिश नहीं करता। aptitudeलगभग एक घंटे प्रति रन के लिए स्वैप में पिटाई समाप्त हुई; apt-get काफी तेज था।
intuited

4
आधिकारिक डेबियन निचोड़ दस्तावेज में स्पष्ट रूप से लिखा aptitudeगया है कि लेनी से अपग्रेड के लिए उपयोग नहीं करना है भले ही यह पिछले उन्नयन के लिए समर्थित था, इसलिए मुझे नहीं लगता कि यह केवल जड़ता है ...
ह्यूबर्ट करियो

@ हबर्टकारियो - हाँ, वास्तव में। मैंने अपना उत्तर अपडेट कर दिया है।
चार्ल्स स्टुअर्ट

मैं केवल इतना ही कह सकता हूं कि apt-getलगभग हमेशा उबंटू (१२.१०, १४.०४ सर्वर से अनुभव) फेंकता है जबकि aptitudeवास्तव में कुछ कर सकता है। मुझे अभी भी समझ में नहीं आया कि कैसे अभी भी मौजूद है।
टट्टी.जस

20

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

aptitude search flash | grep ^i

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

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

aptitude search '~iflash'

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

aptitude search '?installed(flash)'

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

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

aptitude search '(^ttf|^font)'

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

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

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

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-टर्मिनल को स्थापित करना ntfsprogs और fuse-utils, egad को स्थापित करना है! मुझे लगता है कि अधिकांश लोग सिर्फ टर्मिनल परिप्रेक्ष्य चाहते हैं! अंतर्निहित NTFS एकीकरण नहीं है, जो वैकल्पिक है, जब तक कि उन्होंने इसे निर्दिष्ट नहीं किया है।)

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

$ 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'

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


4
सर्च फीचर्स के apt-getमाध्यम से उपलब्ध हैंapt-cache search NAME
एरिकआर

@EricR सच है, लेकिन मुझे इनकी खोज क्षमता नहीं मिली है
निकमन

4

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

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

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


3

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

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


प्रशस्ति पत्र की जरूरत है, लेकिन यह एक आकर्षक अंतर होगा।
कजकाई


वास्तव में apt-getऐसा ही है, साथ है apt-get autoremove <package-name>। दोनों apt-getऔर aptitudeऑटो स्थापित पैकेजों को चिह्नित करें
लेगियोनेयर

लेकिन aptitudeहर बार इस्तेमाल होने वाले ऑटो पैकेज को साफ करें। जबकि apt-getआपको वह स्पष्ट शुरू करने की आवश्यकता है।
एंडर्स

2

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

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