Практически под каждой статьей, в которой рассказывается про взаимодействие с пакетами в Linux Mint, Debian, Ubuntu и другими DEB-дистрибутивами, подписчики и читатели задают вопросы касательно правильного использования команд apt и apt-get: какую и когда нужно использовать, в чем разница между этими командами и в каких дистрибутивах будет работать каждая. Решил в этой статье объяснить разницу между командами и объяснить почему APT и apt - это ни одно и то же.
APT, apt и apt-get - это разные вещи
APT или Advanced Packaging Tool - это название набора утилит командной строки для взаимодействия с системой управления пакетами dbkg, которая применяется в Debian и основанных на нем дистрибутивах (Ubuntu, в первую очередь, Linux Mint, который основан на Ubuntu и LMDE, основанная напрямую на Debian, а также иные другие производные напрямую от Debian или Ubuntu).
В этом наборе есть такие утилиты как apt, apt-get, apt-cache, apt-config и aptitude (графический интерфейс к APT), которые используются для установки, обновления и удаления пакетов.
Что не так с утилитой apt-get?
До Debian 8 и Ubuntu 16.04 основные действия с пакетами происходили при помощи утилиты apt-get. Эта утилита имела и имеет ряд неэффективных функций.
Например, чтобы установить пакет нужно ввести команду apt-get install <имя_пакета>, но если вы хотите выполнить поиск пакета, то нужно вводить apt-cache search <имя_пакета>. Еще один пример: чтобы перечислить все установленные в дистрибутиве пакеты нужно было использовать команду dpkg --get-selections.
Ну а теперь представьте начинающего пользователя, которому попадается такая вот утилита с крайне неочевидными и нелогичными командами... Кошмар, правда? Чтобы упростить взаимодействие пользователя с пакетами было принято решение внедрить утилиту apt, которая исправляла недостатки предшественника.
Основные отличия между apt-get и apt
Принято выделять пять основных различий между утилитами apt-get и apt:
- apt имеет красивую шкалу прогресса
- apt отображает список пакетов, которые могут быть обновлены
- apt объединяет в себе функции apt-get, apt-cache и dpkg -l
- apt имеет новые команды
- различный синтаксис команд apt и apt-get
Давайте пройдемся по каждому различию чуть подробнее.
1️⃣ apt имеет красивую шкалу прогресса
Во время установки или удаления пакета при помощи apt отображается шкала прогресса, которая показывает ход выполнения задачи в процентах.
2️⃣ apt отображает список пакетов, которые могут быть обновлены
Если пользователь обновляет базы данных репозиториев, то отображается дополнительная строка с информацией о количестве пакетов, для которых имеются обновления. В случае необходимости можно ввести команду apt list --upgradable и получить на выхлопе список пакетов для которых нужны обновления.
3️⃣ apt объединяет в себе функции apt-get, apt-cache и dpkg -l
До Debian 8 и Ubuntu 16.04 пользователи использовали apt-get и им приходилось запоминать большое количество команд для взаимодействия с пакетами. С появлением apt надобность в этом отпала, так как теперь эта утилита соединила в себе ранее разделенные и называемые по разному операции для управления пакетами.
4️⃣ apt имеет новые команды
Помимо упрощения уже существовавших команд, в apt добавили несколько новых: apt-list (вывод списка установленных и доступных для обновления пакетов) и apt edit-sources (редактирование файла /etc/apt/sources.list, содержащего список репозиториев, из которых могут быть скачаны пакеты)
5️⃣ Различный синтаксис команд apt и apt-get
Хотя утилита apt объединяет функции утилит apt-get и apt-cache, не все её команды полностью совместимы с apt-get. Поэтому не всегда можно заменить команду apt-get на apt. В таблице ниже приведено краткое сравнение команд apt и apt-get.
Когда использовать apt-get, а когда apt?
Разработчики дистрибутивов Linux рекомендуют использовать команду apt для управления пакетами, поскольку она обладает необходимыми возможностями и проще в использовании благодаря меньшему количеству опций, которые легко запоминаются.
Однако команда apt-get продолжает поддерживаться для обеспечения обратной совместимости и используется в специфических случаях, когда команда apt не обладает достаточным функционалом. Также нет никакой официальной информации о прекращении поддержки apt-get.
Подведем итоги
Надеюсь, что смог объяснить в чем разница между APT, apt-get и apt и теперь, по крайней мере у новичков, появится больше понимания и информация перед использование утилит для управления пакетами через терминал.