apt update обновляет локальные сведения о пакетах, а apt install, apt upgrade, apt remove и другие команды меняют состав системы. Изменяющие систему команды запускают с административными правами, например через sudo, и перед подтверждением всегда читают рассчитанный список устанавливаемых, обновляемых и удаляемых пакетов.APT получает пакеты из уже настроенных репозиториев пакетов. Набор пакетов и версий зависит от выпуска ОС, архитектуры и подключённых источников. Формат и расположение настройки источников, их названия и доступность различаются между выпусками Debian и Ubuntu и конкретными конфигурациями; актуальные сведения нужно сверять с Debian Reference и руководством Ubuntu Server по управлению пакетами. Изменение репозиториев, PPA, ключей и политик доверия в этой инструкции не рассматривается.
APT и apt-get
apt предназначен прежде всего для интерактивной работы администратора и выводит удобный для человека результат. Для скриптов и автоматизации интерфейс apt не следует считать неизменно стабильным: выбор между apt и apt-get, а также допустимые параметры нужно сверять с документацией используемого выпуска. Общее различие DEB-, RPM-, APT- и DNF-стеков описано в статье «Пакеты Linux: DEB, RPM, APT, YUM и DNF — как устроена установка программ».Обновить индекс пакетов: apt update
Индекс пакетов содержит сведения о доступных версиях, архитектурах и зависимостях пакетов. Команда apt update загружает актуальные индексы из уже настроенных репозиториев, но не устанавливает и не обновляет программы.
sudo apt updateПовторять apt update перед каждой операцией не обязательно: это нужно, когда локальные индексы могли устареть, были изменены источники или требуется увидеть свежие версии из репозиториев. Успешное завершение команды не означает, что установленные пакеты уже обновлены.
Разница между apt update, apt upgrade и apt full-upgrade
| Команда | Что делает | Может удалить установленные пакеты |
|---|---|---|
apt update | Обновляет локальные индексы доступных пакетов. | Нет |
apt upgrade | Обновляет установленные пакеты; при необходимости может установить новые зависимости. | Нет |
apt full-upgrade | Обновляет систему с более свободным разрешением зависимостей. | Да, если это требуется для разрешения зависимостей |
Проверить пакет и доступные версии
До установки полезно проверить, существует ли пакет, какая версия установлена и какую версию APT считает кандидатом. Кандидат выбирается не только по номеру версии: на него влияют релиз ОС, архитектура, подключённые источники, приоритеты и закрепления версии пакета. Удержание пакета также может изменить предлагаемую транзакцию.
apt list --all-versions <пакет>apt-cache policy <пакет>apt list может содержать предупреждение о нестабильности CLI для скриптов. В интерактивном сеансе это не мешает просмотру, но не делает формат вывода контрак том для автоматизации.Установить пакет или обновить один пакет через apt install
Команда apt install устанавливает отсутствующий DEB-пакет вместе с необходимыми зависимостями. Если пакет уже установлен, apt install <пакет> может обновить именно его до выбранной APT версии-кандидата. Это не эквивалентно полному обновлению системы: другие установленные пакеты сами по себе не становятся целью команды.
Установка пакета Linux через APT
Ниже <пакет> — имя пакета из настроенных репозиториев.
- 1При необходимости обновите индексыЕсли сведения о репозиториях не обновлялись недавно, выполните
sudo apt update. Команда только получает актуальные метаданные. - 2Просмотрите план без измененийВыполните
apt -s install <пакет>. Режим симуляции покажет рассчитанные установки, обновления и удаления, но не изменит систему. - 3Установите пакетВыполните
sudo apt install <пакет>. Перед ответом на запрос подтверждения проверьте разделы с новыми, обновляемыми и удаляемыми пакетами. - 4Проверьте установленную версиюВыполните
apt-cache policy <пакет>и сравните строкуInstalledс ожидаемой версией. Наличие пакета не подтверждает работоспособность самого приложения или его службы.
sudo apt install <пакет>sudo apt install <пакет>=<версия>Конкретная версия доступна не всегда
apt list --all-versions или apt-cache policy на целевом сервере.Обновить установленные пакеты: upgrade и full-upgrade
apt upgrade обновляет установленные пакеты до доступных версий и при необходимости способен добавить новые зависимости, но не удаляет уже установленные пакеты. Пакеты, для обновления которых понадобилось бы удаление, эта команда может оставить без изменения.
sudo apt upgradeapt full-upgrade разрешает зависимости более свободно и при необходимости может удалить установленные пакеты. Поэтому особенно внимательно проверьте рассчитанную пакетную транзакцию до подтверждения, включая список удаляемых компонентов.
sudo apt full-upgradeПолное обновление рабочего сервера требует планирования
full-upgrade, если состав транзакции не понятен или в нём есть неожиданные удаления. Планирование окна работ, обновления ядра, проверка необходимости перезагрузки и варианты отката рассмотрены отдельно в статье «Обновление Linux-сервера: пакеты, ядро, перезагрузка и откат».Как заранее посмотреть изменения APT
Обычная изменяющая команда APT до подтверждения выводит рассчитанный список новых, обновляемых и удаляемых пакетов, а также объём загрузки и занимаемое место. На этом этапе можно отказаться от операции. Проверяйте не только целевой пакет, но и зависимости, удаления, замену критичных компонентов и удерживаемые пакеты.
apt -s install <пакет>apt -s upgradeapt -s full-upgradeСимуляция — снимок текущего состояния
Удалить пакет: apt remove и apt purge
apt remove удаляет пакет, но обычно оставляет конфигурационные файлы, которые учитывает пакетная система. Это позволяет при повторной установке вернуть часть прежней настройки. Зависимости, ставшие ненужными, не обязательно удаляются этой командой.
sudo apt remove <пакет>apt purge удаляет пакет и его конфигурационные файлы, которые учитывает пакетная система. Команду можно применять к установленному пакету или к уже удалённому пакету, если его остаточная конфигурация всё ещё зарегистрирована в базе пакетов.
sudo apt purge <пакет>Purge не означает удаление всех данных приложения
apt purge не гарантирует удаления пользовательских данных, журналов, баз данных, файлов в домашних каталогах и других объектов, созданных приложением или администратором вне контроля пакетной системы. Перед удалением серверного приложения отдельно определите, где хранятся его данные и конфигурация.Удалить ненужные зависимости: apt autoremove
APT различает пакеты, помеченные как установленные вручную и автоматически. apt autoremove предлагает удалить автоматически установленные пакеты, которые APT больше не считает необходимыми для вручную установленных пакетов. Это полезная очистка, но не обязательная и не безусловно безопасная: рассчитанный список нужно проверить.
apt -s autoremovesudo apt autoremoveЕсли пакет нужен, но APT считает его автоматической зависимостью, отметьте его как установленный вручную до запуска autoremove.
sudo apt-mark manual <пакет>apt-mark manual <пакет> повторите apt -s autoremove и убедитесь, что пакет исчез из списка на удаление. Отметка вручную влияет на расчёт необходимости пакета, но не устанавливает его и не меняет его версию.Очистить кэш APT: clean и autoclean
При загрузке пакетов APT сохраняет архивы DEB в кэше пакетов. Очистка этого кэша не удаляет установленные программы и не заменяет autoremove: это разные операции.
Разница между apt clean и apt autoclean
| Команда | Что удаляет | Что не удаляет |
|---|---|---|
apt clean | Все загруженные архивы пакетов из кэша APT. | Установленные пакеты и индексы репозиториев. |
apt autoclean | Только архивы пакетов, которые больше нельзя скачать из настроенных источников. | Доступные для повторной загрузки архивы, установленные пакеты и индексы репозиториев. |
sudo apt cleansudo apt autocleanclean, ни autoclean не очищают списки и индексы репозиториев, полученные через apt update. После clean APT при необходимости скачает нужный DEB-архив заново.Когда не продолжать операцию APT
Остановитесь и разберите ситуацию отдельно, если APT предлагает неожиданно удалить критичные пакеты, сообщает о неразрешимых зависимостях, не может получить индексы либо указывает на удержания и несовместимые версии. Это может быть следствием состояния репозиториев, закреплений, смешения выпусков или сторонних пакетов.
Блокировки и прерванный dpkg — отдельная диагностика
dpkg was interrupted или неразрешимых зависимостях не следует исправлять удалением lock-файлов и случайными командами. Не запускайте параллельные пакетные транзакции. Диагностика таких состояний описана в статье «Не устанавливаются пакеты в Linux: блокировки, зависимости и ошибки APT/DNF».Термины в статье
- Зависимость пакета
- Зависимость пакета — требование пакета к другому пакету или его версии, без выполнения которого установка, запуск либо корректное обновление ПО невозможны или ограничены.
- Индекс пакетов
- Индекс пакетов — набор метаданных репозитория, содержащий сведения о версиях, зависимостях, архитектурах и расположении доступных пакетов.
- Кэш пакетов
- Кэш пакетов — локально сохранённые менеджером пакетов архивы пакетов и, в зависимости от реализации, метаданные репозиториев для повторного использования.
- Менеджер пакетов
- Менеджер пакетов — средство установки, обновления, удаления и учёта программных пакетов; высокоуровневые менеджеры также работают с репозиториями и разрешают зависимости.
- Пакетная транзакция
- Пакетная транзакция — согласованный набор действий по установке, обновлению, удалению и настройке пакетов, формируемый менеджером пакетов в рамках одной команды или задания.
- Репозиторий пакетов
- Репозиторий пакетов — структурированный источник пакетов и метаданных, из которого менеджер пакетов получает версии ПО, зависимости, обновления и информацию о подписях.
- Системная служба
- Системная служба — программный компонент, которым ОС управляет как логической единицей для фонового выполнения задач или предоставления функций программам и пользователям.
- Удержание пакета
- Удержание пакета — состояние пакета, запрещающее менеджеру пакетов автоматически устанавливать, обновлять, удалять или менять его версию.
- APT
- APT — система управления пакетами в Debian-подобных Linux, которая получает пакеты из репозиториев, разрешает зависимости и передаёт установку низкоуровневому менеджеру dpkg.
- DEB-пакет
- DEB-пакет — архивный формат распространения ПО в Debian-совместимых Linux, содержащий файлы программы, метаданные и сведения о зависимостях.
- Debian
- Debian — универсальный дистрибутив Linux с пакетами DEB и системой APT, известный консервативной веткой Stable и разделением репозиториев по веткам разработки.
- dpkg
- dpkg — низкоуровневый менеджер пакетов Debian, устанавливающий пакеты из локальных .deb-файлов, удаляющий установленные пакеты и ведущий их базу без загрузки зависимостей из репозиториев.
- PPA
- PPA — размещённый в Launchpad репозиторий DEB-пакетов для отдельных выпусков Ubuntu, который подключается к APT как дополнительный источник.
- sudo
- sudo — утилита контроля и делегирования привилегий, которая по заданной политике запускает команду от имени целевого пользователя, обычно root.
- Ubuntu Server
- Ubuntu Server — серверный вариант дистрибутива Ubuntu на базе Debian с APT и типовыми средствами автоматизации, доступный в виде установочных и готовых образов.
