سؤال Aptitude vs. apt-get: ما هي الأداة الموصى بها (ويعرف أيضًا باسم "right") لاستخدامها؟


منذ بعض الوقت قرأت ذلك aptitude هي الأداة المفضلة للتثبيت على أنظمة ديبيان. ولكن عند البحث حول كيفية إدارة نظام يستند إلى دبيان ، نادرًا ما يتم ذكر aptitude. يبدو أن معظم الناس يفضلون apt-get - وهذا صحيح حتى لصفحات Wiki Debian!

لذلك أنا أتساءل عما إذا كنت قد فاتني شيء ما. ما هي الأداة المناسبة للاستخدام؟


93
2018-01-09 09:42


الأصل


ومن المثير للاهتمام أن أوبونتو لم يعد يثبت aptitude بشكل افتراضي. - Mechanical snail
الاختلاف الوحيد الأكثر أهمية بالنسبة لي هو أنه بعد قراءة المستندات تمامًا ، لا يمكنني العثور على طريقة للحصول على مصدر الحزمة عبر aptitude. apt-get source package-name سوف أفعل ذلك ، لكني لم أر أي كفاءة مكافئة - EricR
شيء واحد هو ذلك aptitude search package-name يعمل في aptitude. آخر هو 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) ، لديهم قواعد مختلفة ، وقواعد aptitude هي دائما تقريبا أفضل في الممارسة حيث يختلفون.

السبب في رؤية المزيد من الوثائق ل apt-get على aptitude هو في الغالب القصور الذاتي: aptitude لم تكن الواجهة الأمامية الموصى بها لـ APT لكل هذه المدة الطويلة ، لم يتم تحديث الكثير من الوثائق الموجودة ، وهناك الكثير من الناس الذين يدركون مزايا aptitude على apt-get لكن استخدامها apt-get بالغريزة.

لقد وصلت مؤخرا إلى نقطة حيث عادة ما أتابع apt مع iوليس - عندما اكتب.

حاشية لاحظ أن القواعد المستخدمة في apt-get و aptitude تتحرك الأهداف - كما يلاحظ Hubert في التعليقات ، فإن مسار الترقية الموصى به من Debian Lenny يستخدم الآن apt-get، ليس aptitude. هذا يعكس حقيقة ذلك apt-get بتتبع حالة أقل عن الحزمة الحالية من aptitude، لذلك لا داعي للقلق بشأن حالة APT لا تكون "نظيفة" ، ولأن apt-get القواعد أذكى مما كانت عليه من قبل. ما زلت استخدم والتوصية aptitude على apt-get، لكنها توصية أكثر دقة


72
2018-02-26 19:42



بالإضافة إلى ذلك ، يسمح aptitude باستعراض الحلول المحتملة للنزاعات بسهولة ، بينما في apt-get يكون لديك عادة طريقة واحدة ممكنة فقط وإما أن تقبلها أو يجب عليك حلها باليد (على سبيل المثال باستخدام dpkg). - liori
apt-get لديها ميزة كونها أكثر كفاءة في الذاكرة. هذا من غير المحتمل أن يكون ملحوظًا لمعظم المستخدمين ؛ لم أكن على علم بذلك حتى حاولت ترقية الحزم على تثبيت دبيان كامل مع 32 ميغابايت من ذاكرة الوصول العشوائي. aptitudeانتهى السحق في المبادلة لمدة ساعة تقريبا في المدى ؛ كانت apt-get أسرع بشكل ملحوظ. - intuited
تنص الوثائق الرسمية للضغط على ديبيان بوضوح على عدم استخدامها aptitude للترقية من Lenny على الرغم من أنه كان مدعومًا للترقيات السابقة ، لذلك لا أعتقد أنه من القصور الذاتي فقط ... - Hubert Kario
HubertKario - نعم ، في الواقع. لقد قمت بتحديث إجابتي. - Charles Stewart
لا أستطيع إلا أن أقول ذلك apt-get دائما تقريبا يرمي أخطاء (تجربة من خادم أوبونتو 12.10 ، 14.04) في حين aptitude يمكنه فعل شيء ما ما زلت لا أفهم كيف أن apt-get ما زال موجودًا. - Totty.js


aptitude يجعلها ملائمة لإظهار البرامج في بحث قمت بتثبيته بالفعل على النظام (بمساعدة grep):

aptitude search flash | grep ^i

في الواقع، aptitudeالبحث أقوى بكثير مما تحصل عليه grep، حيث يدعم البحث السياقي:

على سبيل المثال ، سيجد هذا جميع الحزم التي تحتوي على "flash" في اسم الحزمة التي تم تثبيتها:

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

(ملاحظة: في النموذج القصير ، تكون الوسيطات المحددة بفراغات ANDed داخل علامات اقتباس ؛ إذا تم تمريرها كوسيطة سطر أوامر 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

اشرح لماذا قد يلزم تثبيت "fuse-utils"

$ 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! أعتقد أن معظم الناس يريدون فقط المنظور النهائي و لا المدمج في NTFS التكامل ، وهو أمر اختياري ، إلا إذا حددوه.)

العثور على جميع الحزم التي توفر الخدمة "mail-transport-agent":

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

لسوء الحظ ، هذه الاشياء موثقة بشكل سيئ ومن الصعب العثور عليها ، ولكن هناأفضل مرجع (من المشرف على "aptitude").


19
2018-06-20 10:53



ميزات البحث متاحة من apt-get بواسطة apt-cache search NAME - EricR
EricR صحيح ولكن لم أجد قدرات البحث مثل هذه - niceman


بالنسبة الى الأسئلة المتداولة حول Debian GNU / Linux حول إدارة الحزمتعد aptitude أكثر تعقيدًا من apt-get وتعتمد على أدوات إدارة الحزم الأقل تعقيدًا apt-get و dpkg.

لذلك ، وللحصول على احتياجات أبسط ، يمكنك استخدام الأدوات الأكثر بساطة ، أما بالنسبة للاحتياجات الأكثر تعقيدًا ، فيمكنك الاعتماد على الأداة الأكثر تطوراً (apitude).

مقتبس من الأسئلة الشائعة في دبيان: "aptitude يوفر وظائف dselect و apt-get ، بالإضافة إلى العديد من الميزات الإضافية غير الموجودة في أي من البرنامجين."


4
2017-08-15 21:52





علامات aptitude علامات حيث تم تثبيتها بسبب تبعية مع العلامة التلقائية. إذا قمت الآن بتطهير أو إزالة حزمة ، فستقوم aptitude تلقائيًا بإزالة الحزم المثبتة تلقائيًا والتي لم تعد مستخدمة إلى جانب الحزمة التي تريد إزالتها أو إزالتها.

هذا هو السبب الرئيسي الذي يجعلني أعتقد شخصياً أن aptitude دائماً أفضل من ذلك.


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


لا توجد أداة مناسبة ، يمكنك مزجها ومطابقتها معًا اعتمادًا على ما تجده أكثر ملاءمةً للمهمة المطلوبة. aptitude أداة رائعة لاختبار المستخدمين / المستخدمين ولكن عادةً ما تكون أقل موثوقية للترقية من واحد إلى آخر. انظر مقالي apt-get، aptitude،… اختر مدير الحزمة المناسب لك.


2
2018-06-21 08:49