Какова реальная разница между «apt-get» и «aptitude»? (Как насчет «wajig»?)

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

Почему Debian поддерживает эти параллельные инструменты? (Бонусный вопрос: что же такое ваджиг ?)

  • Как узнать, установлен ли пакет через yum в сценарии bash?
  • Где найти последние обновления безопасности Debian Wheezy?
  • Aptitude - удаление автоматически установленных пакетов, рекомендованных другими пакетами
  • проблема установки gcc 5 на debian
  • Yum fail: Требует установленные пакеты
  • apt-get dist-upgrade хочет удалить слишком много пакетов
  • Несовместимые версии libsqlite3-0 (i386 и amd64) блокируют друг друга
  • Как применять обновления для OpenBSD, NetBSD и FreeBSD?
  • 10 Solutions collect form web for “Какова реальная разница между «apt-get» и «aptitude»? (Как насчет «wajig»?)”

    Самое очевидное различие заключается в том, что aptitude предоставляет интерфейс терминала (как и Synaptic в терминале), тогда как apt-get – нет.

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

    Есть несколько незначительных отличий:

    • aptitude автоматически удалит подходящие пакеты, тогда как apt-get требует отдельную команду для этого
    • Команды для обновления или dist-upgrade были переименованы в aptitude для, вероятно, более точных имен безопасного обновления и полного обновления , соответственно.
    • aptitude фактически выполняет функции не только apt-get, но и некоторые из его вспомогательных инструментов, таких как apt-cache и apt-mark.
    • aptitude имеет несколько иной синтаксис запросов для поиска (по сравнению с apt-cache)
    • У aptitude есть причины, почему и почему-то не сказать вам, какие вручную установленные пакеты предотвращают действие, которое вы, возможно, захотите принять.
    • Если действия (установка, удаление, обновление пакетов), которые вы хотите принять, вызывают конфликты, aptitude может предложить несколько потенциальных решений. apt-get просто скажет: «Прости, Дэйв, я не могу позволить тебе это сделать».

    Существуют и другие небольшие различия, но это самые важные из них, о которых я могу думать.

    Короче говоря, aptitude более правильно относится к категории с синаптическими и другими интерфейсами диспетчера пакетов более высокого уровня. Просто так же имеет интерфейс командной строки, который похож на apt-get.

    Бонусный раунд: что такое ваджиг?

    Помните, как я упомянул эти «сопутствующие» инструменты, такие как apt-cache и apt-mark? Ну, их кучка, и если вы их много используете, вы можете не помнить, какие из них предоставляют какие команды. Ваджиг является одним из решений этой проблемы. Это, по сути, диспетчер, обертка вокруг всех этих инструментов. Он также применяет sudo, когда это необходимо. Когда вы говорите, что 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 имеет полноэкранный текстовый режим (curses). Тот факт, что вы можете использовать большинство аргументов команды 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. 

    aptitude – предпочтительная программа для управления пакетами с консоли как для установки пакетов, так и для обновления пакетов или систем в Debian.

    Ниже представлен обзор инструмента и функций, которые он имеет над apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

    Итак, мой совет – просто apt-get install aptitude 🙂

    aptitude запоминает, какие пакеты были запрошены явно и которые были установлены только из-за зависимостей. Он автоматически удалит пакеты, которые явно не запрашивались, когда они больше не нужны.

    apt-get обрабатывает пакеты, запрошенные явно, и их зависимости одинаковы.

    Таким образом, лучше использовать aptitude , это помогает поддерживать чистую систему.

    apt-get , а также различные сопутствующие инструменты используют значительно меньше памяти, чем соответствующие вызовы командной строки aptitude , и немного быстрее. Я был в блаженном неведении об этом, пока не попробовал модернизировать установку debian на стилизованном старом pentium thinkpad с 32 МБ бара. Для запуска apt-get потребовалось бы час или два разворота, что было успешно завершено; aptitude потерпит неудачу после того, как я подумаю о более длительном периоде времени.

    Это различие более или менее не имеет отношения к чему-либо, напоминающему современную настольную систему.

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

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

    Как уже упоминалось, http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude гораздо проще использовать интерфейс командной строки.

    Под капотом, разве они не используют одну и ту же систему APT? Да.

    Основная система не просто apt , а dpkg . Эта система столь же глупа, как и RPM, она может обрабатывать только установку и администрирование отдельных пакетов. Он отслеживает, какие установленные файлы принадлежат к какому пакету.

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

    Да, и apt-get, и aptitude полагаются на библиотеку APT.

    См. Мой ответ на serverfault.com .

    Debian не является монолитной сущностью, есть люди с разными мнениями, а сторонник-помощник решил, что apt-get имеет некоторые недостатки и хочет создать что-то лучше с способностью. Он улучшил логику, чтобы найти решения для сложных сценариев обновления, добавил графический интерфейс для консоли и т. Д. И есть больше, чем просто apt-get и aptitude, см. Мою статью apt-get, aptitude, … выберите подходящего менеджера пакетов для вас .

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

    Дата: Вт, 20 Апр 2004 22:27:12 -0400 От: Joey Hess

    Девять причин, по которым вы должны использовать aptitude вместо apt-get или dselect.

    1. aptitude может выглядеть так же, как apt-get

      Если вы запустите «aptitude update» или «aptitude upgrade» или «aptitude install», он выглядит и работает так же, как apt-get, с несколькими улучшениями. Таким образом, нет кривой обучения.

      (Если вы являетесь пользователем dselect, кривая обучения, очевидно, не является одной из ваших проблем.)

    2. aptitude отслеживает автоматически установленные пакеты

      Не стоит беспокоиться об обрезке неиспользуемых библиотек и пакетов поддержки из вашей системы. Если вы используете aptitude для установки всего, он будет отслеживать, какие пакеты втягиваются только зависимостями, и удалять эти пакеты, когда они больше не нужны.

    3. aptitude sanely handles рекомендует

      Многолетняя неудача apt-get заключалась в отсутствии поддержки отношений «Рекомендуй». Это проблема, потому что многие пакеты в Debian полагаются на рекомендации по использованию программного обеспечения, которое обычный пользователь обычно использует с пакетом. Это необычная причина неприятностей, хотя apt-get недавно смог по крайней мере упомянуть рекомендуемые пакеты, легко пропустить его предупреждения.

      Поддержка Aptitude рекомендует по умолчанию и может быть сконфигурирована для поддержки предложений. Он даже поддерживает установку рекомендуемых пакетов при использовании в режиме командной строки.

    4. используйте aptitude как обычный пользователь и избегайте использования вашей системы

      Возможно, вы не знали, что вы можете запускать aptitude в режиме gui в качестве обычного пользователя. Внесите любые изменения, которые вы хотели бы попробовать. Если вы попадете в настоящий беспорядок, вы можете нажать «q» и выйти, ваши изменения не будут сохранены. (Aptitude также позволяет использовать ctrl-u для отмены изменений.) Поскольку он работает как обычный пользователь, вы не можете вставлять свою систему, пока не сообщите aptitude, чтобы что-то сделать, и в этот момент она предложит вам пароль root.

    5. aptitude обладает мощным интерфейсом и возможностями поиска

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

    6. aptitude позволяет легко отслеживать устаревшее программное обеспечение

      Если Debian перестанет распространять пакет, apt оставит его в вашей системе неопределенно, без предупреждений и обновлений. Aptitude перечисляет такие пакеты в разделе «Устаревшие и локально созданные пакеты», чтобы вы могли быть проинформированы о проблеме и что-то сделать.

    7. aptitude имеет интерфейс к системе задач Debian

      Aptitude позволяет использовать систему задач Debian, поскольку она предназначена для использования. Вы можете просматривать доступные задачи, выбирать задачу для установки, а затем вставлять в нее и отменить части задачи, которую вы не хотите. apt-get не поддерживает задачи, а aptitude лучше, чем специальные инструменты, такие как tasksel.

    8. aptitude поддерживает несколько источников

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

    9. aptitude регистрирует свои действия

      Пакет Aptitude logs устанавливает, обновляет и удаляет / varlog / aptitude, что может быть полезно для выяснения причин начала взлома после вчерашнего обновления или при удалении пакета partiticlar.

    – см. shy jo

    =================== Есть также более новая дискуссия с 2010 года здесь https://superuser.com/questions/93437/aptitude-vs-apt-get-which- является рекомендуемым-aka-the-right-tool-to-use на StackExchange.

    Основываясь на ответе @ 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. 

    и так далее.

    Linux и Unix - лучшая ОС в мире.