Терминал Linux 8. Пакетные менеджеры: apt vs apt-get. В чем разница?


Apt (advanced packaging tool) - это программа для работы с пакетами программ в операционных системах Linux Debian, и основанных на них - Ubuntu, Linux Mint и т.д.

По сути, apt - это терминальный (консольный) пакетный менеджер. 

Цикл статей о терминале:
  1. Терминал Linux. 1 статья - команды навигации в терминале.

  2. Терминал Linux. 2 статья - команда поиска файлов и директорий в терминале

  3. Терминал Linux. 3 статья - команды поиска файлов (продолжение)

  4. Терминал Linux. 4 статья - создание, удаление, форматирование, монтирование разделов жесткого диска

  5. Терминал Linux. 5 статья - cоздание aliases (псевдонимов) в Ubuntu

  6. Терминал Linux. 6 статья - права доступа к каталогам и файлам в Linux, команды chmod и chown.

  7. Терминал Linux. 7 статья - доступ к sudo без ввода пароля.

  8. Терминал Linux 8. Пакетные менеджеры: apt vs apt-get. В чем разница?


На данном сайте во всех статьях об установке каких-либо программ используется команда для установки пакетов:
sudo apt-get install <package_name>
Начиная с Ubuntu 16.04 (теперь присуствует и в Ubuntu 14.04) был добавлен новый пакетный менеджер просто "apt" и теперь команда установки пакета выглядит следующим образом:
sudo apt install <package_name>
То есть, кроме знакомой нам apt-get добавился еще apt. И в этой статье мы подробнее рассмотрим разницу между ними.

Возникает логичный вопрос, зачем нужен новый пакетный менеджер?

У старого apt-* существует достаточно ключей, в которых легко запутаться, особенно новичку:


Пакетный менеджер apt заменяет старые apt-get и apt-cache. Непосредственно, реализованы все самые наиболее используемые команды по установке, удалению пакетов, обновлению системы и поиска пакетов. Кроме того, раскрасили в цветах текст выполнения данных команд.

Давайте же разберем список команд нового пакетного менеджера apt:


Для того, чтобы получить краткую подсказку по данным командам, всегда можно выполнить команду:
apt help
Вот краткое описание команд из справки:

Пройдемся подробнее по каждой команде нового пакетного менеджера apt.

install, remove, purge - используются для установки, удаления, удаления с зависимостями пакетов в системе. Отличие от apt-get что добавился прогресс выполнения операции:


search - команда аналогична apt-cache search, используется для поиска пакета в репозиториях. Разница в том, что эта команда выводит сортированный список по алфавиту.


show - команда, аналогичная apt-cache show, показывает подробную информацию о пакете. Разница в том, что теперь информация более краткая и по существу. Скрыты более технические параметры, такие как хеши.


update - команда, аналогичная apt-get update, обновляет информацию о пакетах в добавленных репозиториях в системе. Разница в том, что текст выполнения стал разноцветным:

* Цвета строк с репозиториями меняются только в момент их обновления.

list - команда, похожая на dpkg list, отображает список пакетов в зависимости от дополнительного ключа.
Ключи могут быть следующими:

--upgradable - просмотр списка пакетов которые могут быть обновлены (есть новые версии в репозиториях)
--installed - просмотр списка всех установленных пакетов в системе
--manual-installed - просмотр списка пакетов, которые устанавливались в ручную пользователем
--all-version - просмотр вообще всех пакетов, описанных выше.
--verbose - отображение краткой информации (что это за пакет программы) по всем пакетам

Также можно указывать часть имени пакетов, по которым нужно получить информацию, указав звездочку на конце, либо непосредственно полное имя пакета. Пример:
apt list zypper* --verbose

Для удобного чтения этого огромного списка, можно его сохранить в файл. Выполнить перенаправление вывода выполнения команды из терминала в файл:
apt list --manual-installed > manual-installed.txt
После команды указываем одинарную галочку вправо > , а затем название файла текстового файла. Название текстового файла может быть любое, если используете пробел в названии файла, то его нужно экранировать обратным слешем.
Если текстового файла нет в системе с таким именем, то он будет создан. Если есть в системе, то файл будет перезаписан.

Таким же образом можно сохранить в файл и выводы остальных списков для удобного их просмотра в графическом текстовом редакторе:


upgrade - команда аналогична apt-get upgrade --with-new-pkgs, то есть обновляет пакеты, которые уже установлены в системе и доставляет новые пакеты-зависимости.

full-upgrade - команда аналогична apt-get dist-upgrade, то есть обновляет пакеты, которые уже установлены в системе, доставляет новые пакеты зависимости и удаляет пакеты, которые устанавливались в систему и уже не используются.

По поводу разницы обновления в терминале я писал в предыдущей статье:

По поводу этих двух команд для обновления системы - можно использовать обе, но в случае использования upgrade, периодически надо будет использовать следующую команду:

autoremove - команда аналогична apt-get autoremove, очищает систему от пакетов, которые были установлены как зависимости других пакетов и уже не используются.

edit-sources - открывает редактор файла со списком системных репозиториев /etc/apt/sources.list. Больше про эту команду сказать и нечего. Огромной полезности в ней не вижу. Этот файл можно отредактировать без данной команды.

Пришло время переходить на пакетный менеджер apt. 

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

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

Поделиться:

Если у Вас возникли вопросы.

Приглашаю задавать их на сервисе вопросов и ответов: Ask LinuxRussia.com.
Там Ваши вопросы не потеряются и Вы быстрее получите ответ, в отличие от комментариев.

4 коммент. :

  1. Отлично! Спасибо за разъяснения.

    ОтветитьУдалить
  2. Доброе утро! Буквально вчера производил обновление с помощью sudo apt-get- -, дак терминалькик меня и поправил на sudo apt- -. Думаю, статья очень своевременна, благодарю за оперативность!

    ОтветитьУдалить