Яка реальна різниця між „підходом” та „здатністю”? (Як щодо "wajig"?)


256

Я знаю, що це apt-getі aptitudeінтерфейси управління пакетами командного рядка на Linux, що виводиться з Debian, з різними варіантами, але я все ще дещо заплутаний. Невже вони не використовують ту саму систему APT?

Чому Debian підтримує ці паралельні інструменти? ( Бонусне питання: що на землі є ваджиг ?)


Я знаю, що це не правильний відповідь для вас, але чому ви не можете спробувати синаптичний? її користувач дуже прискіпливо і автоматично завантажує та встановлює залежності. Чи немає гнома у вашій системі?
Хемант

Я упереджений, але думаю, що це питання на сайті Ubuntu SE може бути актуальним.
David Z


@Wim через частину цього питання, я вирішив об'єднати 244 у це питання, а не навпаки
xenoterracide

1
Варто відзначити, що здатність планується вилучити з встановленої за замовчуванням установки на наступній версії Ubuntu (хоча ви завжди можете її встановити, використовуючи apt-get згодом)
Rob Cowell

Відповіді:


223

Найбільш очевидною відмінністю є те, що aptitudeнадається інтерфейс меню терміналу (подібно до Synaptic в терміналі), тоді як apt-getвін не робить.

Беручи до уваги лише інтерфейси командного рядка кожного, вони досить схожі, і здебільшого не має значення, яким саме ви користуєтесь. Останні версії обох відстежують, які пакунки були встановлені вручну та які були встановлені як залежності (і тому придатні для автоматичного видалення). Насправді, я вважаю, що ще зовсім недавно два інструменти були оновлені, щоб фактично ділити одну і ту ж базу даних вручну проти автоматично встановлених пакетів, тому випадки, коли ви встановлюєте щось з apt-get, а потім здатність хоче видалити це, в основному, справа минуле.

Є кілька незначних відмінностей:

  • aptitude автоматично видаляє придатні пакети, тоді як для apt-get для цього потрібна окрема команда
  • Команди для оновлення проти dist-upgrade було перейменовано за здатністю до, можливо, точніших імен безпечного оновлення та повної модернізації відповідно.
  • здатність насправді виконує функції не просто apt-get, а й деяких його супутніх інструментів, таких як apt-cache та apt-mark.
  • aptitude має дещо інший синтаксис запиту для пошуку (порівняно з apt-кешем)
  • У aptitude є команди, чому і чому - ні, щоб повідомити, які встановлені вручну пакети перешкоджають дії, яку ви могли б зробити.
  • Якщо дії (встановлення, видалення, оновлення пакетів), які ви хочете здійснити, викликають конфлікти, здатність може запропонувати кілька можливих рішень. apt-get просто скаже: "Вибачте, Дейв, я не можу дозволити вам це зробити".

Є й інші невеликі відмінності, але це найважливіші, які я можу придумати.

Коротше кажучи, здатність більш належним чином належить до категорії з Synaptic та іншими вищими рівнями менеджера пакетів. Він просто має інтерфейс командного рядка, який нагадує apt-get.

Раунд бонусів: Що таке ваджіг?

Пам'ятаєте, як я згадав про такі «супутникові» інструменти, як apt-cache та apt-mark? Ну, є їх купа, і якщо ви їх багато використовуєте, ви можете не пам'ятати, які з них надають, які команди. wajig - це одне рішення цієї проблеми. Це по суті диспетчер, обгортка навколо всіх цих інструментів. Він також застосовує судо, коли це необхідно. Коли ви говорите wajig install foo, wajig каже "Гаразд, installнадається apt-getі вимагає права адміністратора", і він працює sudo apt-get install foo. Коли ви говорите wajig search foo, wajig каже "Гаразд, searchнадається apt-cacheі не потребує привілеїв адміністратора", і він працює apt-cache search foo. Якщо ви використовуєте wajig замість apt-get, apt-mark, apt-cache та інших, то у вас ніколи не буде такої проблеми:

$ apt-get search foo
E: Invalid operation search

Якщо ви хочете знати, що робить wajig за лаштунками, які інструменти він використовує для реалізації певної команди, у неї є --simulateі --teachingрежими.

Дві команди wajig, якими я часто користуюся, є wajig listfiles fooі wajig whichpkg /usr/bin/foo.


Одне велике питання, що виник у мене з придатністю, - це те, що потрібно тривати тривалий час, щоб отримати вкладки назви імен пакунків (наприклад, aptitude install linux-imвкладка), хоча apt-get це дуже швидко. Здається, в родині apt-get є певне кешування, якого не вистачає для придатності.
levesque

12
aptitudeтакож є дивовижні, aptitude searchякі ви можете використовувати з дуже потужними моделями пошуку . У вас є aptitude reinstall. Ви також можете використовувати інтерфейс ncurses (меню терміналу) для підготовки складних операцій з пакетом, таких як часткове оновлення, видалення одного пакету, замороження іншого, оновлення цього, яке ви зможете виконати в одній операції ... О, і він має інтерактивне вирішення конфліктів .
Тотор

3
@Totor свята корова, використовуючи ncurses інтерфейс aptitude, щоб підготувати команди, які продали мене на здатність раз і назавжди! (після років роздумів здібності варто робити, але набравши пристосованість з м'язової пам’яті)
TJ Ellis

2
... а aptitudeтакож aptitude download package-nameповинен отримати пакунок .deb-файл!
Тотор

2
Я лише виявив одне, що не є, aptitudeале є apt-get, і це є apt-get --compile source package-name. apt-get build-dep package-nameіснують, але я вважаю, що aptitude build-dep package-nameкраще зробити роботу.
Андерс

71

Я часто себе цікавив. Вікіпедія підкреслює, що головна відмінна особливість полягає в тому, що у придатності є повноекранний текстовий режим (прокльони). Той факт, що ви можете використовувати більшість apt-getаргументів команд із aptitudeсобою - це лише дизайнерське рішення, щоб полегшити apt-getкористувачам рух aptitudeі навпаки.

Я ніколи не використовував wajig, але документація підказує, що це просто сценарій, який знає, чи передаєте ви debфайл (коли він працює dpkg) або aptім'я пакету (коли він apt-getзамість нього працює ). Чи можете ви спробувати це і побачити, чи це так?

Звичайно, реальна різниця:

gaurav@fern:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
gaurav@fern:~$ aptitude moo
There are no Easter Eggs in this program.

52
Немає! aptitudeмає більше. Ви забули поставити нескінченні -vпрапори moo. (Ви можете піти вгору -vvvvvv)
Умань

12
Не забувайте про всі важливі сили супер корів, які apt-getє, але aptitudeне мають. (Спробуйте --helpобидва)
derobert

lmao. це прикольна відповідь на читання, навіть якщо відповідь @ ryan набагато більш детальна;)
Майкл Трув

26

aptitude - це краща програма для управління пакетами з консолі як для встановлення пакунків, так і для оновлення пакетів або систем в Debian.

Ось огляд інструменту та його функцій над apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

Отож, моя порада - це просто apt-get install здатність :)


2
В примітках до випуску кажуть , схильні-прибудуть в даний час рекомендується більше схильності модернізацій вичавлюють.
jrdioko

1
Так, але тільки для цього. В іншому випадку вони вважаються рівними, але aptitudeмають багато більш досконалих функцій, таких як пошук і режим повноекранного режиму, ніж apt-get.
Андерс

Чомусь використовували здатність встановлювати emacs і не дивлячись, що він видаляв gdm! Тож поки що я буду використовувати apt-get, але мені дуже цікаво.
TomFirth

20

aptitudeпам'ятає, які пакунки були явно запитувані, а які були встановлені лише через залежність. Він автоматично видаляє пакунки, які не були явно запитувані, коли вони більше не потрібні.

apt-get трактує пакети, які запитуються явно, і їх залежності однакові.

Отож, краще використовувати aptitude, це допомагає підтримувати систему в чистоті.


4
Це було правдою, але я знаю, що мій apt-get має apt-get autoremoveкоманду для видалення пакунків, встановлених лише як залежності. Я не знаю, коли ця функція була додана, але один веб-сайт припускає, що це могло статися з Дебіаном Ленні (червень 2010 р.).
Гаурав

8
apt-get autoremoveне видаляє пакунки, встановлені лише як залежності, він видаляє осиротілі залежності, що є тонкою різницею; він не може визначити, чи встановлений пакет "leaf" з наміром чи як залежність, тому він залишає його, де здатність буде знати і видалити його.
pjz

Мене продають! Є й інші приємні речі, aptitudeале це рукотворна функція вбивці.
іконоборство

12

apt-get, а також різні інструменти-супутники використовують значно менше пам'яті, ніж виклики командного рядка aptitudeта трохи швидше. Я про це блаженно не знав, поки не спробував модернізувати інсталяцію debian на старому вимкненому модулі pentium thinkpad з 32 Мб оперативної пам’яті. Пробігла б година або дві заміни apt-get, які успішно завершилися; aptitudeне вдасться після того, як я думаю, що довший проміжок часу.

Ця відмінність більш-менш не має значення стосовно того, що нагадує сучасну настільну систему.


9

Спираючись на відповідь @ Gaurav, великодні яйця у двох менеджерів пакетів досить смішні !:

siddhartha@siddhartha-dev:~$ apt-get  moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
..."Have you mooed today?"...

siddhartha@siddhartha-dev:~$ aptitude  moo
There are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -v moo
There really are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
siddhartha@siddhartha-dev:~$ aptitude -vvv moo
Stop it!
siddhartha@siddhartha-dev:~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
siddhartha@siddhartha-dev:~$ aptitude -vvvvv moo
All right, you win.

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

і так далі.


8

Вони пропонують той самий базовий функціонал: встановлення та видалення пакетів з командного рядка.

Ось більш детальне порівняння, розміщене на веб-сайті Ubuntu Stack Exchange : https://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749


Вони досить схожі, я можу перемикатися між ними досить легко.
інвертувати

7

Як уже згадувалося http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitudeє набагато простіший у використанні інтерфейс командного рядка.

Невже вони не використовують ту саму систему APT? Так.

Основна система - це не просто apt, але dpkg. Ця система настільки ж німа, як RPM, вона може обробляти лише встановлення та адміністрування окремих пакетів. Він відстежує, які встановлені файли належать до якого пакета.

aptобробляє завантаження сховищ, відстеження залежностей тощо для всіх окремих пакетів - які він потім встановлює за допомогою dpkg. aptitudeробить те ж саме, з іншим інтерфейсом.


6

Як apt-get, так і здатність покладаються на бібліотеку APT, так.

Дивіться мою відповідь на serverfault.com .

Debian не є монолітною сутністю, є люди з різними думками, і підтримка придатності вирішила, що apt-get має деякі недоліки, і хотіла створити щось краще з придатності. Він вдосконалив логіку пошуку рішень для складних сценаріїв оновлення, додав графічний інтерфейс для консолі і т. Д. І тут є не що інше, як apt-get і здатність, дивіться мою статтю apt-get, fitness,… підберіть потрібний менеджер пакунків для вас .


6

Я не впевнений, чи це все-таки має місце, але кровоточивий розробник Debian Joey Hess завжди використовував для того, щоб відстоювати здібності над apt-get. Звичайно, все змінюється в міру розвитку програмного забезпечення. Apt-get зараз обробляє залежності краще, ніж раніше. З http://lists.debian.org/debian-user/2004/04/msg03138.html

Дата: Вт, 20 квітня 2004 22:27:12 -0400 Від: Джоуї Гесс

Дев'ять причин, чому ви повинні використовувати здатність замість apt-get або dselect.

  1. здатність може виглядати так, як підходить

    Якщо ви запускаєте "оновлення можливостей" або "оновлення можливостей" або "встановлення можливостей", воно виглядає і працює так само, як і apt-get, з кількома вдосконаленнями. Тому кривої навчання немає.

    (Якщо ви користувач dselect, крива навчання, очевидно, не є однією з ваших проблем.)

  2. треки aptitude автоматично встановлені пакети

    Перестаньте турбуватися про обрізання невикористаних бібліотек та пакетів підтримки з вашої системи. Якщо ви використовуєте здатність для встановлення всього, він буде відслідковувати, які пакунки підтягуються залежно один від одного, і видаляти ці пакунки, коли вони більше не потрібні.

  3. здатність до здорових ручок рекомендує

    Давним невдачею apt-get стало відсутність його підтримки у відносинах Рекомендує. Це проблема, оскільки багато пакунків у Debian покладаються на Рекомендує використовувати програмне забезпечення, яке звичайний користувач зазвичай використовує для цього пакета. Це не є рідкісною причиною неприємностей, хоча нещодавно apt-get став здатний хоча б згадати рекомендовані пакети, легко пропустити його попередження.

    Підтримка Aptitude рекомендує за замовчуванням, і її можна налаштувати так, щоб підтримувати пропозиції. Він навіть підтримує встановлення рекомендованих пакетів при використанні в режимі командного рядка.

  4. використовувати здібності як звичайний користувач і уникати шлангів вашої системи

    Можливо, ви не знали, що можете запускати здатність у режимі gui як звичайний користувач. Внесіть будь-які зміни, які ви хочете спробувати. Якщо ви потрапите в справжній безлад, ви можете натиснути «q» і вийти, ваші зміни не будуть збережені. (Aptitude також дозволяє використовувати ctrl-u для скасування змін.) Оскільки він працює як звичайний користувач, ви не можете шлангувати свою систему, поки ви не скажете здатність щось робити, і тоді він запропонує вам ввести пароль root.

  5. здатність має потужний інтерфейс та можливості пошуку

    Між категоричним браузером aptitude та його чудовою підтримкою фільтрації в стилі mutt та пошуку пакетів за назвою, описом, технічним обслуговуванням, залежностями тощо, ви повинні мати можливість швидше, ніж коли-небудь раніше, використовувати пакети aptitude.

  6. здатність дозволяє легко відслідковувати застаріле програмне забезпечення

    Якщо Debian перестане розповсюджувати пакет, apt залишить його у вашій системі безстроково, без попереджень та оновлень. Aptitude перераховує такі пакети у розділі "Застарілі та локально створені пакети", тож ви можете бути поінформовані про проблему та зробити щось із цим.

  7. aptitude має інтерфейс до системи завдань Debian

    Aptitude дозволяє використовувати систему завдань Debian так, як вона була розроблена для використання. Ви можете переглядати доступні завдання, вибирати завдання для встановлення, а потім викопати його та видалити частини завдання, які ви не хочете. apt-get не підтримує завдання, а здатність краща навіть ніж засоби спеціального призначення, такі як tasksel.

  8. здатність підтримує кілька джерел

    Якщо ваш source.list налаштований так, щоб зробити доступними кілька версій пакета, aptitude дозволяє переглядати доступні версії та вибирати не встановлену за замовчуванням версію для встановлення. Якщо пакет виходить з ладу нестабільним, просто поверніть його до версії тестування.

  9. здатність реєструє свої дії

    Aptitude логує пакет, який він встановлює, модернізує та видаляє до / varlog / aptitude, що може бути корисно для того, щоб з’ясувати, чому все почалося ламатися після вчорашнього оновлення або коли ви видалили пакет з partiticlar.

- бач сором’язливий жо

==================== Також є новіша дискусія з 2010 року тут https://superuser.com/questions/93437/aptitude-vs-apt-get-which- є-рекомендований-aka-the-right-tool-to use in StackExchange.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.