apt vs apt-get/apt-cache vs aptitude

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

Debian Reference

2.2.1. apt vs. apt-get / apt-cache vs. aptitude
Хотя aptitude чрезвычайно удобный интерактивный инструмент, которым автор Debian Reference преимущественно пользуется, вам надо знать некоторые предупреждающие моменты:

  • Команда aptitude не рекомендуется для обновления работающего Debian stable релиза до нового выпущенного stable релиза.
    • Рекомендуется для этого случая использовать apt full-upgrade или apt-get dist-upgrade. Смотри Bug #411280
  • Команда aptitude иногда предлагает удалить большое количество пакетов, что случается при апгрейде системы на работающих Debian testing или unstable системах.
    • Этой ситуации опасаются множество системных администраторов. Без паники.
    • Похоже, что в большинстве случае причиной этому является перекос версий в пакетах, зависящих или рекомендованных мета-пакетами, такими как gnome-core.
    • Эту ситуацию можно разрулить через запуск aptitude и выбор в меню пункта "Cancel pending actions", выхода из aptitude и использования команды apt full-upgrade.
  • Основными инструментами являются apt-get и apt-cache.
    • apt-get и apt-cache предоставляют только интерфейс командной строки.
    • apt-get наиболее подходит для обновления системы до другого релиза.
    • apt-get предлагает надёжный способ разрешения зависимостей пакетов.
    • apt-get наименее требователен к ресурсам железа, то есть жрёт мало памяти и быстро работает.
    • apt-cache предлагает стандартный, основанный на регулярных выражениях, поиск по именам и описаниям пакетов.
    • apt-get и apt-cache может управлять множеством версий пакетов используя /etc/apt/preferences, но это довольно громоздко.

Команда apt предлагает высокоуровневой интерфейс командной строки для управления пакетами. По большому счёту это обёртка для apt-get, apt-cache и других подходящих программ, изначально задумывавшийся, как "end-user" интерфейс и включает некоторые опции, по умолчанию наиболее подходящие для интерактивного использования.
- apt показывает дружественную "строку прогресса", когда устанавливаются пакеты командой apt install.
- apt по умолчанию удаляет кэшированные .deb пакеты после успешной установки загруженных пакетов.

Tip
Пользователям рекомендуется использовать новую apt команду для интерактивного использования. Для использования же в скриптах предлагается применять apt-get и apt-cache.

Команда aptitude – наиболее универсальный инструмент управления пакетами.
- aptitude предоставляет полноэкранный интерактивный пользовательский интерфейс.
- aptitude также предоставляет и обычный интерфейс командной строки.
- aptitude наиболее подходит для ежедневного интерактивного управления пакетами, такого как инспектирования установленных пакетов и поиск свободных пакетов.
- aptitude наиболее требователен к ресурсам железа, то есть жрёт много памяти и медленно работает.
- aptitude предлагает расширенный "регэксп" поиск по всем метаданным, указанным для пакетов.
- aptitude может управлять множеством версий пакетов без использования /etc/apt/preferences и интуитивно понятно.