Команды apt: как ставить, искать и удалять пакеты в Ubuntu и Debian
Команды apt покрывают почти всю работу с программами в Debian и Ubuntu: apt install ставит пакет, apt remove и apt purge удаляют его без конфигов или вместе с ними, apt autoremove чистит лишние зависимости. Ниже рабочие примеры для Ubuntu 26.04 LTS и Debian 13, новый формат источников deb822 и правильное подключение ключей репозиториев.

Содержание
apt, apt-get и dpkg: кто за что отвечает
В Debian и Ubuntu пакетами управляют три слоя. Внизу dpkg: он распаковывает .deb-файл, регистрирует его в базе и запускает скрипты установки, но про зависимости ничего не знает. Над ним APT: скачивает пакеты из репозиториев, вычисляет зависимости и передаёт работу dpkg. Команда apt появилась как удобная обёртка для человека: цветной вывод, прогресс-бар, понятные сообщения. Классические apt-get и apt-cache никуда не делись и лучше подходят для скриптов, потому что их вывод не меняется от версии к версии.
Практическое правило простое. В терминале руками пишите apt, в bash-скриптах и Ansible используйте apt-get. Сам apt при перенаправлении вывода даже предупреждает, что у него нестабильный интерфейс для командной строки.
Всё, что меняет систему, выполняется через sudo. Поиск, просмотр информации и списки пакетов работают от обычного пользователя. Если вы только привыкаете к sudo и правам, загляните в статью про пользователей и sudo.
Установка пакетов: apt install и его варианты
Перед установкой обновите списки пакетов, иначе apt может попытаться скачать версию, которой на зеркале уже нет:
sudo apt update
sudo apt install htop
Можно ставить сразу несколько программ через пробел. Ключ -y отвечает "да" на вопрос о подтверждении, удобно в скриптах, но вручную лучше читать, что именно apt собирается сделать.
sudo apt install git curl vim
sudo apt install -y build-essential
# поставить без рекомендуемых пакетов, экономит место на сервере
sudo apt install --no-install-recommends nginx
Локальный .deb-файл
Скачанный с сайта разработчика .deb ставьте через apt, а не голым dpkg: apt подтянет зависимости из репозиториев. Обратите внимание на ./ перед именем, без него apt будет искать пакет в репозитории.
sudo apt install ./google-chrome-stable_current_amd64.deb
Конкретная версия и переустановка
Узнать доступные версии помогает apt policy, а поставить нужную можно через знак равенства. Если программа сломалась после ручной правки файлов, выручает переустановка:
apt policy nginx
sudo apt install nginx=1.26.3-3
sudo apt install --reinstall nginx
Номер версии в примере условный: подставьте тот, что показал apt policy в вашей системе.
Как удалить пакет в Ubuntu: remove, purge, autoremove
Удаление пакета в Ubuntu и Debian делается тремя командами, и путать их не стоит. apt remove убирает программу, но оставляет её системные настройки в /etc. Это удобно, если вы собираетесь поставить её обратно. apt purge удаляет пакет вместе с конфигами. Ни одна из команд не трогает файлы в домашнем каталоге: настройки программ в ~/.config или ~/.local/share придётся удалять руками.
sudo apt remove vlc
sudo apt purge vlc
# удалить пакет и сразу ставшие ненужными зависимости
sudo apt purge --autoremove vlc
apt autoremove убирает пакеты, которые когда-то поставились как зависимости, а теперь никому не нужны. Перед ответом "Y" прочитайте список: если там оказалась нужная вам утилита, значит, apt считает её автоматически установленной. Отметьте её как поставленную вручную, и autoremove её больше не тронет:
sudo apt-mark manual ripgrep
sudo apt autoremove
Пакеты со статусом rc в выводе dpkg -l удалены, но их конфиги остались. Найти и дочистить их можно так:
dpkg -l | grep '^rc'
sudo apt purge '~c'
Шаблон ~c в apt означает пакеты в состоянии "удалён, конфиги на месте". Если программа стояла из Snap или Flatpak, apt её не увидит: используйте snap remove или flatpak uninstall. Разница между форматами разобрана в статье Snap или Flatpak.
Поиск пакетов и сведения о них
Не знаете точное имя пакета? apt search ищет по имени и описанию, поэтому результатов бывает много. Сузить выдачу помогает поиск только по именам:
apt search ffmpeg
apt search --names-only '^python3-requests'
apt show ffmpeg
apt show выводит версию, размер, зависимости, репозиторий и описание. Для ответа на вопросы "откуда этот файл" и "что внутри пакета" нужен dpkg:
# какому пакету принадлежит файл
dpkg -S /usr/bin/curl
# какие файлы поставил пакет
dpkg -L curl
# кто из установленных зависит от пакета
apt-cache rdepends --installed libcurl4t64
Если команды нет в системе и вы не знаете, в каком она пакете, поставьте apt-file, обновите его базу через sudo apt-file update и ищите: apt-file search bin/dig. В Ubuntu на многие команды сразу подсказывает command-not-found прямо в терминале.
Шпаргалка по командам apt
Сводная таблица на случай, когда нужно быстро вспомнить синтаксис. Команды с sudo меняют систему, остальные только читают.
| Задача | Команда | Аналог в apt-get / dpkg |
|---|---|---|
| Обновить списки пакетов | sudo apt update | apt-get update |
| Обновить установленное | sudo apt upgrade | apt-get upgrade --with-new-pkgs |
| Обновление со сменой зависимостей | sudo apt full-upgrade | apt-get dist-upgrade |
| Установить | sudo apt install пакет | apt-get install |
| Удалить, оставив конфиги | sudo apt remove пакет | apt-get remove |
| Удалить с конфигами | sudo apt purge пакет | apt-get purge |
| Убрать лишние зависимости | sudo apt autoremove | apt-get autoremove |
| Найти пакет | apt search слово | apt-cache search |
| Сведения о пакете | apt show пакет | apt-cache show |
| Список установленных | apt list --installed | dpkg -l |
| Что можно обновить | apt list --upgradable | apt-get -s upgrade |
| Очистить кэш .deb | sudo apt clean | apt-get clean |
Про регулярное обновление и переход между релизами есть отдельная статья: обновление Ubuntu. Если работаете ещё и с Fedora, сравните с командами dnf: логика похожа, названия подкоманд местами другие.
Репозитории: sources.list и формат deb822
Список репозиториев раньше жил в одном файле /etc/apt/sources.list, по строке на источник. В Ubuntu начиная с 24.04 и в Debian 13 основной формат другой, deb822: файлы с расширением .sources в каталоге /etc/apt/sources.list.d/. В Ubuntu 26.04 LTS официальные репозитории описаны в ubuntu.sources, в Debian 13 после установки обычно лежит debian.sources. Выглядит запись так:
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Старые однострочные .list пока читаются, но apt в новых версиях напоминает о переходе. В apt 3.x есть команда, которая переводит старые файлы в новый формат и сохраняет копии с расширением .bak:
sudo apt modernize-sources
sudo apt update
Проверьте сгенерированные файлы. Если у стороннего репозитория поле Signed-By осталось пустым, apt такой файл не примет: путь к ключу придётся вписать руками. Опции в квадратных скобках из старых строк тоже стоит перенести вручную. Полное описание полей есть в man-странице sources.list(5).
PPA в Ubuntu
Личные архивы Launchpad подключаются одной командой, она сама создаёт файл источника и скачивает ключ. Удаление тем же инструментом с ключом --remove:
sudo add-apt-repository ppa:git-core/ppa
sudo add-apt-repository --remove ppa:git-core/ppaКлючи репозиториев без apt-key
Старые инструкции из интернета до сих пор советуют apt-key add. Не делайте так: утилита много лет числилась устаревшей, а в свежих версиях apt (Debian 13, актуальные Ubuntu) её уже нет. Главная претензия к ней в том, что ключ попадал в общее хранилище и мог подписывать любой репозиторий в системе. Современная схема: каждый ключ лежит отдельным файлом, и в описании репозитория прямо указано, каким ключом он подписан.
Пример для стороннего репозитория. Каталог /etc/apt/keyrings предназначен как раз для ключей, которые администратор добавляет вручную:
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://example.org/repo-key.asc | sudo gpg --dearmor -o /etc/apt/keyrings/example.gpg
Затем файл источника /etc/apt/sources.list.d/example.sources:
Types: deb
URIs: https://example.org/apt
Suites: stable
Components: main
Signed-By: /etc/apt/keyrings/example.gpg
Ключ в текстовом виде с расширением .asc современный apt тоже понимает, конвертировать через gpg не обязательно. Адрес ключа берите только с официального сайта проекта. Чтобы отключить репозиторий, удалите или переименуйте его .sources, затем удалите файл ключа и выполните sudo apt update.
Ошибка NO_PUBKEY или The following signatures couldn't be verified после apt update почти всегда значит, что ключ репозитория сменился или не указан в Signed-By. Скачайте свежий ключ с сайта проекта по той же схеме и не поддавайтесь соблазну дописать trusted=yes: такой флаг отключает проверку подписи целиком.
Типовые ошибки apt и как их чинить
Could not get lock /var/lib/dpkg/lock-frontend
Пакетами уже занимается другой процесс: Центр приложений, автоматические обновления (unattended-upgrades) или второй терминал. Подождите пару минут и проверьте, кто держит блокировку. Удалять lock-файлы вручную нельзя, так легко получить полуустановленные пакеты.
ps aux | grep -E 'apt|dpkg' | grep -v grep
Прерванная установка и сломанные зависимости
Если пропал свет посреди обновления или вы закрыли терминал, сначала дайте dpkg закончить настройку, потом попросите apt исправить зависимости:
sudo dpkg --configure -a
sudo apt --fix-broken install
Откат обновления
Отдельной команды "отменить" у apt нет. Посмотрите, что ставилось, в журнале /var/log/apt/history.log, затем верните прежнюю версию через apt install пакет=версия, если она ещё есть в репозитории или в кэше /var/cache/apt/archives. Чтобы пакет не обновлялся, пока вы разбираетесь, заморозьте его:
sudo apt-mark hold firefox
apt-mark showhold
sudo apt-mark unhold firefox
Перед крупными изменениями проще сделать снимок системы: в Ubuntu и Mint для этого есть Timeshift. А если пакетный кэш разросся и съел диск, помогут sudo apt clean и советы из статьи как освободить место на диске.
Частые вопросы
Чем apt отличается от apt-get?
Это интерфейсы к одному и тому же APT. apt удобнее человеку: прогресс-бар, цвет, объединённые команды поиска и показа. apt-get и apt-cache стабильны по выводу и лучше подходят для скриптов.
Как удалить пакет в Ubuntu полностью, вместе с настройками?
Выполните sudo apt purge --autoremove имя_пакета. Это удалит пакет, его конфиги в /etc и ненужные зависимости. Пользовательские настройки в домашнем каталоге удалите вручную, обычно они лежат в ~/.config или ~/.local/share.
Безопасно ли запускать apt autoremove?
Обычно да, но всегда читайте список перед подтверждением. Если там нужный пакет, пометьте его командой sudo apt-mark manual имя, и autoremove его больше не предложит.
Почему apt пишет, что apt-key устарел или не найден?
Утилита apt-key выведена из употребления и в свежих версиях apt удалена. Ключ стороннего репозитория кладут отдельным файлом в /etc/apt/keyrings и указывают в поле Signed-By файла .sources.
Как узнать, какой пакет установил команду?
Используйте dpkg -S с полным путём к файлу, например dpkg -S /usr/bin/curl. Путь к команде покажет command -v имя.
Документация и источники
- sources.list(5), apt(8), apt-get(8), Debian Manpages, 2026
- SourcesList, Debian Wiki, 2026
- Package management, Ubuntu Server documentation, 2026
Читайте также
- Как обновить Ubuntu: от обычных обновлений до перехода на 26.04 LTS
- Команды dnf в Fedora 44: от установки пакета до отката обновления
- Pacman: команды для установки, обновления и обслуживания пакетов
- Как установить программу в Linux: все способы с примерами
- Snap или Flatpak: какой формат приложений выбрать в 2026 году
Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.