Пакетный менеджер Apt или Advanced Package Tool используется во множестве дистрибутивов, основанных на Debian или Ubuntu, а таких дистрибутивов сейчас очень много. Этот пакетный менеджер поддерживает все необходимые функции, вы можете устанавливать и удалять пакеты, обновлять то, что было уже установлено, искать пакеты, устанавливать их из файла или загружать без установки. При этом все зависимости будут разрешаться автоматически.
Утилита apt ничем не уступает пакетному менеджеру yum, используемому в RPM дистрибутивах, да, здесь все ещё не поддерживается частичное обновление пакетов, как в Zypper, но в целом всё выглядит очень неплохо. В этой статье мы подробно рассмотрим как пользоваться apt в Linux для решения задач работы с программами.
Содержание статьи
Синтаксис и опции apt
Синтаксис команды apt очень простой и похож на другие команды Linux:
$ apt опции команда параметры_команды
Опции указывают общее поведение утилиты, команда - действие, которое надо выполнить, а в параметрах команды обычно передается имя пакета, с которым следует работать, например, установить или удалить. Вот основные опции утилиты:
- -v, --version - выводит версию утилиты;
- -h, --help - выводит справку по использованию утилиты;
- -y, --yes - автоматически отвечать "да" на все возникающие вопросы;
- --assume-no - автоматически отвечать "нет" на все возникающие вопросы;
- -d, --download-only - только скачать пакеты и больше ничего не делать;
- -f, --fix-broken - исправить недостающие зависимости;
- --no-download - ничего не загружать, использовать только пакеты из кэша;
- -s, --simulate - режим симуляции, никакие операции не выполняются, только выводится информация на экран;
- --allow-unauthenticated - позволяет установить пакеты, из репозиториев, для которых нет GPG подписи;
- --no-install-recommends - не устанавливать рекомендованные пакеты, по умолчанию будут установлены;
- -m, --ignore-missing - игнорировать пакеты, которые существует;
- -q, --quiet - выводить минимум информации, не показывать прогресс бар;
- -V, --verbose-versions - показывать полные версии обновленных пакетов;
- --only-upgrade - не устанавливать новые пакеты, только обновлять;
- --allow-downgrades - разрешить откатывать версию пакетов;
- --reinstall - переустановить пакет если он уже установлен;
А теперь давайте пройдёмся по командам apt, которые вы можете использовать:
- install - установить пакет;
- remove - удалить пакет, конфигурационные файлы, которые были изменены в вашей системе удалены не будут;
- purge - полностью удалить пакет, вместе со всеми его конфигурационными файлами;
- autoremove - очистить ненужные пакеты;
- autoclean - очистить кэш пакетов;
- update - обновить списки пакетов из репозиториев;
- upgrade - обновить версию пакета до последней, если пакет не указан будут обновлены все пакеты;
- full-upgrade - полное обновление системы, включая удаление несовместимых или больше ненужных пакетов;
- list - список установленных пакетов;
- search - поиск пакетов;
- show - посмотреть информацию о пакете;
- download - скачать пакет в текущую папку;
- edit-sources - открыть с настройками репозиториев в текстовом редакторе.
- source - скачать исходный код пакета в текущую папку;
- build-dep - установить зависимости необходимые для сборки выбранного пакета;
Дальше рассмотрим несколько примеров работы с apt, которые пригодятся как начинающим, так и более опытным пользователям.
Как пользоваться apt
1. Обновление пакетов
Сначала давайте обновим список пакетов apt из репозиториев. Репозитории находятся на удалённых серверах и когда утилита apt ищет пакет для установки, естественно, что она не обращается ко всем репозиториям подряд чтобы узнать где он находится. В системе уже есть сохранённых кэш информации о том, какие пакеты вообще есть и где их можно скачать. Для обновления этого кэша используйте команду update:
sudo apt update
Во время загрузки URL репозиториев обозначаются специальными префиксами, вот что они означают:
- Hit (Сущ) - список не изменился с момента предыдущей загрузки;
- Ign (Игн) - репозиторий игнорируется, либо он слишком новый, либо произошла незначительная ошибка во время загрузки;
- Get (Пол) - доступна новая версия и она будет загружена.
Когда кэш обновлен вы можете посмотреть для каких пакетов доступны обновления:
sudo apt list --upgradable
Аналогично можно посмотреть установленные пакеты apt:
sudo apt list --installed
Или все доступные пакеты:
sudo apt list --all-versions
Затем можно обновить все пакеты в системе:
sudo apt full-upgrade
2. Установка пакетов
Чтобы установить пакет apt используйте команду install, например, для установки программы Gimp используйте команду install:
sudo apt install gimp
Если пакет установился неверно и вы хотите его переустановить, можно использовать опцию --reinstall:
sudo apt install gimp --reinstall
Как видите, опции можно указывать не только перед командой, но и после неё, аналогично можно установить несколько пакетов сразу, например:
sudo apt install gimp inkskape -y
Чтобы не подтверждать установку вручную используем опцию -y. Допустим вы установили пакет с помощью dpkg и теперь хотите установить для него зависимости, запустите команду install без параметров с опцией -f или --fix-broken:
sudo apt install --fix-broken
Можно скачать deb пакет в текущую папку без установки:
apt download gimp
Скачивать пакеты надо от имени обычного пользователя, иначе тогда они не будут доступны для работы с ними. Если вам нужно установить пакет из файла, просто передайте путь к файлу команде install:
sudo apt install gimp_2.8.22-1_amd64.deb
Чтобы установить определенную версию пакета просто укажите нужную версию после имени пакета через знак =, например:
sudo apt install linux-headers-generic=4.15.0.20.23
Чтобы найти доступные версии можно использовать команду policy. Она отображает информацию о том какая версия установлена, а также какие версии доступны:
sudo apt policy linux-headers-generic
Если вы не знаете как точно называется пакет, можно выполнить поиск пакетов apt с помощью команды search:
sudo apt search gimp
3. Удаление пакетов
Чтобы удалить ненужный пакет используйте команду remove:
sudo apt remove gimp
Однако если вы изменяли какие-либо конфигурационные файлы из состава пакета, то при таком способе удаления они останутся в системе, чтобы удалить всё полностью используйте команду purge:
sudo apt purge gimp
Чтобы удалить лишние пакеты, которые в системе больше не нужны выполните команду autoremove:
sudo apt autoremove
А для очистки кэша пакетов - autoclean:
sudo apt autoclean
Выводы
В этой статье мы рассмотрели примеры использования и основные команды apt Ubuntu, как видите, команд у этой утилиты хватает на все случаи жизни. Но, как видите, всё очень просто если разобраться. Я не рассказал только об одной команде, попробуйте ввести в терминале apt moo, увидите что будет. Это небольшая пасхалка от разработчиков.
Спасибо, очень хорошо разъяснили, сложил в свою библиотеку.
Спасибо за мычание...
Обьясните чайнику ,плз, разницу между apt и apt-get.
Почти нет разницы, в apt появилось несколько новых команд. https://losst.pro/apt-vs-apt-get-v-chem-raznitsa
спасибо, забыли упомянуть apt dist-upgrage
непонятно разница между apt list и sudo apt list -installed. Первая выводит список всех установленых и доступных к установке а вторая только установленных?
разница между apt и apt-get в том, что команда apt может поменять своё поведение, а apt-get - нет. Это соглашение разработчиков Debian. Из этого следует, что поведение команды apt-get более предсказуемое, и поэтому команду apt-get применять при написании скриптов предпочтительнее.
Если при apt upgrade мне нужно оставить измененные локально (мной) пакеты в том виде, в котором они есть, надо ввести ключ --assume-no , однако первый же вопрос, который задает система - это согласие на установку пакетов и уменьшение свободного пространства. Соответственно, система получает отрицательный ответ и прекращает установку. Как правильно будет выглядеть команда в таком случае?
А что насчет esm-apps ?
а префикс -t в apt что означает? у вас в статье этого нет. к примеру - apt install telegram-desktop -t bookworm-backports