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

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

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

241 голос | спросил Kevin Cantu 19 AM00000080000001331 2010, 08:50:13

10 ответов


214

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

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

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

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

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

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

Бонусный раунд: что такое wajig?

Помните, как я упомянул эти «сопутствующие» инструменты, такие как apt-cache и apt-mark? Ну, их кучка, и если вы их много используете, вы можете не помнить, какие из них предоставляют какие команды. Ваджиг является одним из решений этой проблемы. Это, по сути, диспетчер, обертка вокруг всех этих инструментов. Он также применяет sudo, когда это необходимо. Когда вы говорите wajig install foo, wajig говорит: «Ок, install предоставляется apt-get и требует прав администратора», и он запускает < code> sudo apt-get install foo. Когда вы говорите wajig search foo, wajig говорит: «Ok, search предоставляется apt-cache и не требует прав администратора», и это запускает apt-cache search foo. Если вы используете wajig вместо apt-get, apt-mark, apt-cache и других, то у вас никогда не будет этой проблемы:

$ apt-get поиск foo
E: Неверный поиск операции

Если вы хотите знать, что делает wajig за кулисами, какие инструменты он использует для реализации определенной команды, он имеет - имитировать и - обучение режимы.

Две команды wajig, которые я часто использую, это wajig listfiles foo и wajig whichpkg /usr /bin /foo.

ответил Ryan Thompson 21 AM00000040000002131 2010, 04:37:21
67

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

Я никогда не использовал wajig, но документация предполагает, что это просто скрипт, который знает, передаете ли вы ему файл deb (когда он запускает dpkg) или имя пакета apt (при запуске apt-get). Не могли бы вы попробовать и посмотреть, что это значит?

Конечно, разница real такова:

gaurav @ fern: ~ $ apt-get moo
         (__)
         (Оо)
   /------ \ /
  /| ||
 * /\ --- /\
    ~~ ~~
.... «Вы сегодня насмешливо?» ...
gaurav @ fern: ~ $ aptitude moo
В этой программе нет пасхальных яиц.
ответил Gaurav 19 AM00000090000000131 2010, 09:33:01
25

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

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

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

ответил dsp 11 AM000000110000005531 2010, 11:10:55
19

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

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

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

ответил starblue 19 AM000000100000004131 2010, 10:59:41
11

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

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

ответил intuited 16 FebruaryEurope/MoscowbWed, 16 Feb 2011 07:30:40 +0300000000amWed, 16 Feb 2011 07:30:40 +030011 2011, 07:30:40
8

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

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

ответил Riccardo Murri 11 PM000000120000004431 2010, 12:28:44
7

Основываясь на ответе @ Gaurav, пасхальные яйца в двух менеджерах пакетов довольно забавны!:

siddhartha @ siddhartha-dev: ~ $ apt-get moo
             (__)
             (Оо)
       /------ \ /
      /| ||
     * /\ --- /\
        ~~ ~~
... «Вы сегодня насмешливо?» ...

siddhartha @ siddhartha-dev: ~ $ aptitude moo
В этой программе нет пасхальных яиц.
siddhartha @ siddhartha-dev: ~ $ aptitude -v moo
В этой программе действительно нет пасхальных яиц.
siddhartha @ siddhartha-dev: ~ $ aptitude -vv moo
Разве я уже не говорил вам, что в этой программе нет пасхальных яиц?
siddhartha @ siddhartha-dev: ~ $ aptitude -vvv moo
Прекрати!
siddhartha @ siddhartha-dev: ~ $ aptitude -vvvv moo
Ладно, ладно, если я дам тебе пасхальное яйцо, ты уйдешь?
siddhartha @ siddhartha-dev: ~ $ aptitude -vvvvv moo
Хорошо, ты побеждаешь.

                               /---- \
                       ------- /\
                      /\
                     /|
   ----------------- /-------- \
   ----------------------------------------------
siddhartha @ siddhartha-dev: ~ $ aptitude -vvvvvv moo
Что это? Конечно, это слон, съеденный змеей.
siddhartha @ siddhartha-dev: ~ $ aptitude -vvvvvvv moo
Что это? Конечно, это слон, съеденный змеей.
siddhartha @ siddhartha-dev: ~ $ aptitude -vvvvvvvv moo
Что это? Конечно, это слон, съеденный змеей.

и т. д.

ответил Siddhartha 19 PMpSun, 19 Apr 2015 23:57:28 +030057Sunday 2015, 23:57:28
6

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

  

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

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

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

ответил vdboor 20 AM000000120000003531 2010, 00:43:35
5

Я не уверен, что это все еще сохраняется, но разработчик Debian, разработчик 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 для отмены изменений.) Поскольку он работает как обычный пользователь, вы не можете вставлять свою систему, пока не сообщите сделайте что-нибудь, и в этот момент он предложит вам пароль root.

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

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

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

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

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

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

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

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

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

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

- см. shy jo

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

ответил manselton 25 WedEurope/Moscow2013-12-25T18:33:48+04:00Europe/Moscow12bEurope/MoscowWed, 25 Dec 2013 18:33:48 +0400 2013, 18:33:48
4

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

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

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

ответил Raphaël Hertzog 21 J0000006Europe/Moscow 2011, 12:45:48

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132