ServerAID
Найти гайд, команду, тег… ⌘ K
Глоссарий  ·  термин

apt — что это и зачем

APT (Advanced Package Tool) — система управления пакетами в Debian, Ubuntu и их производных. Через неё ставят, обновляют и удаляют программы из репозиториев. Команда `apt` — это удобная обёртка для людей; в скриптах используют более стабильный `apt-get`.

apt

APT (Advanced Package Tool) — система управления пакетами в Debian, Ubuntu и их производных. Через неё ставят, обновляют и удаляют программы из репозиториев. Команда apt — это удобная обёртка для людей; в скриптах используют более стабильный apt-get.

Что это в одном абзаце

В Ubuntu вы не качаете программы с сайтов, как в Windows. Программы лежат в репозиториях — серверах, на которых хранятся подписанные пакеты .deb. Команда apt (и её родственники apt-get, apt-cache, apt-mark) обращается к этим репозиториям, скачивает пакеты, разрешает зависимости и ставит их в систему.

Один типичный сценарий:

sudo apt update           # обновить локальный список пакетов
sudo apt install nginx    # поставить nginx с зависимостями
sudo apt upgrade          # подтянуть свежие версии всего установленного
sudo apt remove nginx     # удалить пакет (конфиги остаются)
sudo apt purge nginx      # удалить пакет вместе с конфигами

Из чего состоит APT

«APT» — это собирательное название для нескольких CLI-инструментов поверх одной библиотеки libapt:

  • apt — современная обёртка для интерактивной работы. Цветной вывод, прогресс-бар, компактный синтаксис. Появилась в Ubuntu 16.04.
  • apt-get — старый CLI, стабильный API без warning-ов. Используется в скриптах автоматизации, Dockerfile, CI.
  • apt-cache — поиск и просмотр метаданных без установки: apt-cache search nginx, apt-cache show nginx.
  • apt-mark — фиксация версий: sudo apt-mark hold nginx запретит апгрейд этого пакета до явного unhold.
  • apt-key — устаревший способ управления GPG-ключами репозиториев. С Ubuntu 22.04 предпочтительный путь — класть ключ в /etc/apt/keyrings/.
  • dpkg — низкоуровневый менеджер пакетов. Работает с одиночными .deb-файлами и не разрешает зависимости. APT — это, по сути, «оркестратор поверх dpkg».

В реальной жизни вы используете 95% времени apt (или apt-get в скриптах) и иногда dpkg -l | grep <name> для быстрого поиска по установленным.

Откуда APT берёт пакеты

Список репозиториев лежит в двух местах:

  • /etc/apt/sources.list — старый формат, одна строка на источник.
  • /etc/apt/sources.list.d/*.list или *.sources — отдельные файлы для дополнительных репозиториев. Сюда кладут конфиги Docker, NodeSource, PostgreSQL.

Формат строки в sources.list:

deb [signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable

Что внутри:

  • deb — это репозиторий с бинарными пакетами. Альтернатива — deb-src для исходников.
  • signed-by=... — путь к GPG-ключу, которым подписан репозиторий. APT откажется ставить пакеты, не подписанные ожидаемым ключом.
  • URL — адрес репозитория.
  • noble — codename релиза Ubuntu (24.04 = noble, 22.04 = jammy, 20.04 = focal).
  • stable — компонент: stable / testing / nightly. Для Ubuntu-репозиториев это main / restricted / universe / multiverse.

После добавления нового репозитория всегда нужен sudo apt update, чтобы APT перечитал список доступных пакетов.

Что такое .deb-пакет

.deb — это формат пакета в Debian/Ubuntu. По сути это ar-архив, внутри:

  • control — метаданные: имя, версия, зависимости (Depends:), описание.
  • data.tar.zst — собственно файлы, которые лягут в систему (бинарь в /usr/bin/, конфиги в /etc/, юниты systemd в /lib/systemd/system/).
  • preinst/postinst/prerm/postrm — shell-скрипты, выполняемые до и после установки/удаления. Например, postinst обычно делает systemctl daemon-reload && systemctl enable --now.

Поставить отдельный .deb (например, скачанный с GitHub Release) можно через:

sudo apt install ./package.deb

apt поймёт, что это локальный файл, и сам подтянет зависимости из репозиториев. Можно и через dpkg -i, но он не разрешает зависимости — придётся потом ловить их через sudo apt -f install.

Чем APT отличается от snap и flatpak

Это три параллельные системы установки софта на Ubuntu:

  • APT — нативные Debian-пакеты, ставятся в систему, делят системные библиотеки. Ниже накладные расходы по диску/памяти, но обновления привязаны к релизу Ubuntu.
  • snap — самодостаточные пакеты, каждый со своей копией зависимостей. Изолированы через AppArmor. Удобны для быстрого обновления (Firefox, Chromium на Ubuntu сейчас snap), но «толще».
  • flatpak — аналог snap, более популярен на десктопе вне Ubuntu, использует Flathub.

Для серверных приложений практически всегда — APT. snap уместен для desktop-софта и некоторых демонов (например, microk8s). flatpak — почти исключительно desktop.

Частые вопросы

Что значит APT в Linux

Advanced Package Tool — пакетный менеджер семейства Debian. Управляет установкой, обновлением и удалением пакетов формата .deb из репозиториев. Используется в Ubuntu, Debian, Linux Mint, Pop!_OS, Kali и других производных. В дистрибутивах Red Hat-семейства (Fedora, CentOS, RHEL) аналог — dnf/yum.

Чем apt отличается от apt-get

apt — современная обёртка для интерактивной работы: цветной вывод, прогресс-бар, удобнее для людей. apt-get — старая команда со стабильным CLI, рекомендована для скриптов. Обе используют одну библиотеку libapt и работают с теми же репозиториями.

Где APT хранит информацию о пакетах

Список репозиториев — /etc/apt/sources.list и /etc/apt/sources.list.d/. Скачанный кэш .deb/var/cache/apt/archives/. База установленных пакетов — /var/lib/dpkg/status. GPG-ключи репозиториев на современной Ubuntu — /etc/apt/keyrings/.

Безопасно ли использовать sudo apt upgrade

Да, для security-обновлений — рутинная практика. Для больших обновлений (мажорные версии nginx, postgresql, ядра) на проде стоит сначала снять btrfs-снапшот, посмотреть apt list --upgradable и читать changelog критичных пакетов. Полный чек-лист — в статье apt update и apt upgrade без сюрпризов.

Почему apt просит sudo

apt пишет в системные пути (/usr/bin/, /etc/, /var/lib/dpkg/), куда обычный пользователь писать не может. Поэтому установка, обновление, удаление пакетов всегда требуют root. Команды только для чтения (apt list, apt search, apt-cache show) можно запускать без sudo.

Что почитать

  • apt update и apt upgrade — безопасный апгрейд Ubuntu — практический гайд: разница update/upgrade/full-upgrade, чек-лист перед прод-апгрейдом, unattended-upgrades, откат при поломке.
  • docker compose на Ubuntu — пример подключения стороннего apt-репозитория (Docker) с GPG-ключом в /etc/apt/keyrings/.
  • systemd — большинство сервисов, ставящихся через apt, управляются через systemd-юниты.

Похожие материалы

grep — что это и зачем
Глоссарий

grep — что это и зачем

grep — стандартная команда Linux для поиска строк по шаблону внутри текстовых файлов и потоков. Берёт текст на вход, отдаёт строки, в которых нашлось совпадение. Базовый инструмент работы с логами, конфигами, выводом других команд через пайп.

Редакция
find — что это и зачем
Глоссарий

find — что это и зачем

find — стандартная команда Linux для поиска файлов и каталогов по имени, типу, правам, размеру, дате и десяткам других критериев. С помощью `-exec` поверх найденного можно сразу выполнять команды. Универсальный инструмент админа для массовой работы с файловой системой.

Редакция
snap — что это и зачем
Глоссарий

snap — что это и зачем

snap — система упаковки и установки приложений от Canonical, разработанная как альтернатива apt. Каждый snap — самодостаточный пакет со своими зависимостями, изолированный от системы через AppArmor. Используется на Ubuntu для Firefox, Chromium, microk8s и многих desktop-приложений.

Редакция
LVM — что это и зачем
Глоссарий

LVM — что это и зачем

LVM — слой абстракции между физическими дисками и файловыми системами в Linux. Объединяет диски в пулы (Volume Groups), нарезает их на логические тома (Logical Volumes) и позволяет изменять размер на лету. Альтернатива классическому partitioning, которая делает работу с дисками гибкой.

Редакция