it-swarm-ru.tech

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

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

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

259
Kevin Cantu

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

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

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

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

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

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

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

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

$ apt-get search foo
E: Invalid operation search

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

Я часто использую две команды wajig: wajig listfiles foo а также wajig whichpkg /usr/bin/foo.

225
Ryan C. Thompson

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

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

Конечно, реальная разница:

[email protected]:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
[email protected]:~$ aptitude moo
There are no Easter Eggs in this program.
71
Gaurav

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

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

Итак, мой совет - просто установить aptitude :)

26
dsp

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

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

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

20
starblue

apt-get, А также различные сопутствующие инструменты используют значительно меньше памяти, чем соответствующие вызовы командной строки aptitude, и работают немного быстрее. Я был в блаженном неведении об этом, пока не попробовал обновить установку Debian на устаревшем старом ThinkPad Thinkpad с 32 МБ ОЗУ. Для запуска apt-get Потребуется час или два перестановки, что завершилось успешно; aptitude потерпит неудачу после более длительного периода времени.

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

12
intuited

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

[email protected]:~$ apt-get  moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
..."Have you mooed today?"...

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

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

и так далее.

9
Siddhartha

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

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

8
Riccardo Murri

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

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

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

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

7
vdboor

Я не уверен, так ли это до сих пор, но дурацкий разработчик Edge Debian Джои Хесс всегда использовал для пропаганды aptitude вместо apt-get. Конечно, все меняется по мере развития программного обеспечения. Apt-get теперь обрабатывает зависимости лучше, чем раньше. От http://lists.debian.org/debian-user/2004/04/msg03138.html

Дата: вторник, 20 апреля 2004 г. 22:27:12 -0400 Откуда: Джои Хесс

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

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

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

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

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

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

  3. aptitude sanely обрабатывает рекомендует

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

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

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

    Возможно, вы не знали, что можете запустить aptitude в режиме графического интерфейса как обычный пользователь. Внесите любые изменения, которые вы хотели бы попробовать. Если вы попали в настоящий беспорядок, вы можете нажать "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 поддерживает несколько источников

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

  9. aptitude записывает свои действия

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

- смотри застенчивый Джо

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

6
manselton

И apt-get, и aptitude используют библиотеку APT, да.

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

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

6
Raphaël Hertzog