DEB (.deb) — стандартный формат пакетов для семейства дистрибутивов Debian. Используется в Ubuntu, Debian, Astra Linux и производных. Файл .deb — это архив формата ar, содержащий три компонента: debian-binary (версия формата), control.tar.gz (метаданные и скрипты), data.tar.gz (устанавливаемые файлы).
Как работает
Установка пакета выполняется через APT (Advanced Package Tool):
apt update # обновить список пакетов
apt install nginx # установить из репозитория
apt install ./package.deb # установить из локального файла
dpkg -i package.deb # установить без разрешения зависимостей
APT автоматически загружает и устанавливает зависимости из настроенных репозиториев (/etc/apt/sources.list и /etc/apt/sources.list.d/). dpkg — низкоуровневый инструмент для работы с .deb-файлами без управления зависимостями.
Структура control-файла содержит: имя пакета, версию, архитектуру (amd64, arm64, all), описание, зависимости (Depends), рекомендации (Recommends), конфликты (Conflicts). Maintainer-скрипты (preinst, postinst, prerm, postrm) запускаются в ходе установки и удаления.
История
Формат deb разработан Яном Мёрдоком для Debian в 1993 году. Debian 1.1 (1996) официально принял пакетную систему. APT появился в Debian 2.1 (1999). Ubuntu с 2004 года использует DEB как стандарт. Конкурирующий формат RPM (Red Hat) применяется в Fedora, RHEL, Rocky Linux и CentOS.
Связь с хостингом
На VPS под Ubuntu/Debian все системные компоненты и прикладные пакеты управляются через APT. Установка Nginx, PHP, MySQL, Certbot, Docker — всё через apt install. Репозитории поставщиков (Nginx, Docker, MySQL) добавляются через GPG-ключи и sources.list.d-файлы. Системное обновление: apt update && apt upgrade.
Структура DEB-пакета
DEB — архив ar: data.tar (файлы), control.tar (метаданные: зависимости, скрипты preinstall/postinstall), debian-binary (версия формата). control-файл: Package, Version, Depends, Architecture, Maintainer. dpkg -L пакет — список файлов пакета.
Управление пакетами
dpkg — низкоуровневый (работает с .deb файлами напрямую). APT — высокоуровневый (репозитории, автоматическое разрешение зависимостей). apt-cache show nginx — информация о пакете. apt-mark hold nginx — запрет автообновления. dpkg -i package.deb — ручная установка.
Создание DEB-пакетов
Для автоматизированного деплоя приложений. Инструменты: dpkg-buildpackage, fpm (Effing Package Manager). fpm: fpm -s dir -t deb -n myapp -v 1.0 ./dist=/opt/myapp. Собственный APT-репозиторий через reprepro или Aptly. В CI/CD — сборка DEB и публикация в корпоративный репозиторий.
Репозиторий DEB-пакетов
Собственный APT-репозиторий через Aptly или reprepro. Подписание ключом GPG для доверия. Клиент добавляет: curl -fsSL repo.example.com/key.gpg | gpg --dearmor -o /etc/apt/keyrings/myrepo.gpg. Sourcelist: deb [signed-by=/etc/apt/keyrings/myrepo.gpg] repo.example.com stable main. CI/CD автоматически публикует в репозиторий.