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

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

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

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-юниты.

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

Сроки поддержки Ubuntu LTS — на сколько хватает релиза
Глоссарий

Сроки поддержки Ubuntu LTS — на сколько хватает релиза

Ubuntu LTS — это релиз с долгой поддержкой: 5 лет бесплатных security-обновлений и 10 лет с подпиской Ubuntu Pro. Промежуточные релизы (24.10, 25.04) живут всего 9 месяцев. Разбираем, какие версии сейчас актуальны, до какой даты безопасно сидеть на 22.04 и 24.04, и когда выходит 26.04 LTS.

Редакция
Debian или Ubuntu — что выбрать
Глоссарий

Debian или Ubuntu — что выбрать

Debian и Ubuntu — две родственные операционные системы: Ubuntu сделана на базе Debian и тянет оттуда пакеты, формат `.deb` и пакетный менеджер apt. Различия — в скорости релизов, наборе из коробки и философии. Кратко: Debian Stable консервативнее и аскетичнее, Ubuntu LTS — свежее и удобнее, особенно для рабочего стола и облаков. Под прод подходят оба, выбор сводится к тому, что вам важнее: предсказуемость или новизна.

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

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

bash (Bourne Again SHell) — это командная оболочка, которая обрабатывает то, что вы вводите в терминале Linux. Запускает программы, расширяет переменные, выполняет конструкции `if` / `for`, читает скрипты из файлов с шебангом `#!/bin/bash`. На Ubuntu — оболочка по умолчанию для интерактивных пользователей; для системных скриптов используют более строгий `/bin/sh` (`dash`).

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

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

Ubuntu — самый популярный дистрибутив Linux: бесплатная операционная система на базе Debian, удобная и для серверов, и для рабочего стола. Под капотом Linux-ядро, поверх — пакетный менеджер apt, рабочий стол GNOME (на Desktop) и стек systemd-сервисов. Релизы выходят каждые полгода, LTS-версии — раз в два года и поддерживаются 5 лет.

Редакция