Гид по технологиям

Как упаковать программу в DEB с помощью Debreate

6 min read Упаковка ПО Обновлено 21 Nov 2025
Упаковка DEB с Debreate
Упаковка DEB с Debreate

Оглавление

  • Установка и запуск Debreate
  • Информация в разделе Control
  • Зависимости
  • Файлы
  • Скрипты, журнал изменений и авторские права
  • Сборка пакета
  • Когда это не подходит
  • Альтернативы и советы
  • Чек‑лист ролей
  • Критерии приёмки
  • Краткая методология
  • Словарь

Установка и запуск Debreate

Первое, что нужно сделать — установить Debreate. Скачайте пакет .deb с официального источника проекта, затем установите его через менеджер пакетов или выполнив в терминале:

sudo dpkg -i debreate_0.8-dev9_all.deb

Запустить Debreate можно из меню приложений в разделе «Разработка» или введя команду debreate в KRunner/терминале:

  • Откройте меню → Разработка → Debreate
  • Или введите debreate в поле запуска приложений

При первом запуске появится экран приветствия, затем информационный экран.

Первый запуск Debreate: приветственный экран и информационная панель

Окно информации Debreate с кратким описанием интерфейса

Важно: интерфейс Debreate интуитивен, но правильное заполнение полей Control и зависимостей критично для корректной установки пакета на целевой системе.

Информация в разделе Control

Раздел Control формирует содержимое control.tar.gz — метаданных пакета. Заполните следующие поля:

  • Package: имя пакета в нижнем регистре; допустимы буквы a–z, цифры, “+”, “-“, “.”.
  • Version: номер версии, например 0.0.1.
  • Maintainer: автор/пакетировщик.
  • Email: контактный e‑mail.
  • Architecture: архитектура пакета: i386, amd64 или all (если пакет архитектуронезависим).
  • Section: категория репозитория (например Text для инструментов обработки текста).
  • Priority: обычно Optional для дополнительного ПО.
  • Short Description: краткое описание для спискового просмотра в менеджере пакетов.
  • Long Description: подробное описание, отображаемое в детальном просмотре и выводе apt‑cache show.

Заполнение данных Control: поля Package, Version, Maintainer и др.

Совет: придерживайтесь соглашений Debian по именованию и версиям — это снизит вероятность конфликтов в репозиториях.

Зависимости

На экране Dependencies перечислите пакеты, от которых зависит ваше ПО. Для примера скрипта, который вызывает Pandoc и использует графический диалог Zenity, добавьте pandoc и zenity.

  • Введите имя пакета и при необходимости ограничение по версии (не обязательно).
  • Нажмите Add, чтобы включить зависимость в метаданные.

Окно зависимостей: добавление pandoc и zenity в список Depends

Примечание: указание зависимостей не устанавливает их автоматически при установке .deb через dpkg; для автоматической установки лучше использовать инструменты вроде apt или GDebi.

Файлы

Подготовьте структуру файлов, которую хотите упаковать. В Debreate можно добавлять файлы по одному и указывать целевые каталоги установки.

Для примера включены три файла:

  • Исполняемый скрипт pandoc-pub.sh — помещается в /usr/bin (FHS: исполняемые программы для всех пользователей).
  • README с инструкцией — помещается в /usr/share/doc.
  • Иконка — помещается в /usr/share/icons.

Экран Files: сопоставление локальных файлов с целевыми каталогами в пакете

Важно: соблюдайте иерархию FHS, чтобы пакет корректно интегрировался в систему и автозапуск/разрешения работали правильно.

Скрипты, журнал изменений и авторские права

Debreate позволяет добавить стандартные скрипты пакета:

  • preinst — выполняется перед установкой
  • postinst — выполняется после установки
  • prerm — перед удалением
  • postrm — после удаления

Также можно добавить Changelog, текст Copyright и создать пункт меню автоматически через Menu Launcher. Для простого тестового пакета эти элементы не обязательны, но для публичного релиза их наличие повышает качество пакета.

Экран Scripts: поля для preinst/postinst/prerm/postrm и метаданные

Совет: делайте скрипты идемпотентными (безопасными для повторного запуска) и минимальными по привилегиям.

Сборка пакета

На последнем экране можно игнорировать дополнительные опции и нажать большую зелёную кнопку для сборки.

Экран Build: кнопка сборки и журнал предупреждений

После сборки вы получите готовый .deb. Установить его локально можно командой:

sudo dpkg -i pandoc-pub_0.0.1_all.deb

Если при установке dpkg сообщает о неудовлетворённых зависимостях, установите их через apt или откройте пакет двойным щелчком в файловом менеджере — тогда при наличии GDebi зависимости установит автоматически.

GDebi: установка пакета с автоматическим разрешением зависимостей

Важно: предупреждения сборщика (missing man page, missing copyright) не всегда критичны для локального использования, но для репозитория Debian/Ubuntu лучше устранить все предупреждения.

Ошибки и как их исправить

  • Проблема: dpkg сообщает о неудовлетворённых зависимостях.
    • Решение: выполнить sudo apt-get install -f или установить пакет через GDebi/apt.
  • Проблема: файл не попал в ожидаемую директорию после установки.
    • Решение: проверьте маппинг в экране Files; целевые пути в DEB должны соответствовать абсолютным путям файловой системы (/usr/bin, /usr/share/doc и т.д.).
  • Проблема: скрипты postinst падают с ошибкой при установке.
    • Решение: запустите скрипт вручную в отладочном режиме, добавьте set -euo pipefail и логирование для локализации ошибки.

Когда это не подходит

  • Если вы хотите распространять пакет через репозиторий apt с автоматическими обновлениями, имеет смысл подготовить пакет с соблюдением всех рекомендаций Debian Policy и подписать репозиторий.
  • Для сложных билдов с компиляцией лучше использовать debhelper, dh_make и систему сборки (debuild), а не графический Debreate.
  • Если пакет должен работать на множествах дистрибутивов (включая non‑Debian), стоит рассмотреть универсальные форматы (Snap, Flatpak, AppImage).

Альтернативы и советы

  • debhelper и dh_make — для подготовленных ресурсов и автоматизации сборки из исходников.
  • dpkg‑debian — утилита для работы с .deb напрямую.
  • checkinstall — для создания .deb из make install (вручную собирает информацию о файлах).
  • Snap, Flatpak, AppImage — если нужна кросс‑дистровая совместимость.

Выбор зависит от цели: быстро распределить скрипт друзьям — Debreate вполне подходит; подготовить пакет для репозитория Debian — нужен более формальный подход.

Проверочная методология перед распространением

  1. Установите пакет в чистой системе (например, контейнер или виртуальная машина) с той же архитектурой.
  2. Проверьте корректность путей и прав на файлы.
  3. Убедитесь, что зависимости устанавливаются и приложение запускается без ошибок.
  4. Проверьте удаление пакета: не оставляет ли он хвосты (орфанные файлы).
  5. Тестируйте сценарии обновления (переустановка новой версии поверх старой).

Чек‑лист ролей

Пакетировщик:

  • Заполнил Control полностью.
  • Указал все зависимости.
  • Разместил файлы в соответствии с FHS.
  • Добавил базовые скрипты при необходимости.

Ревьювер/тестер:

  • Установил пакет в чистой среде.
  • Проверил запуск и поведение при неполных правах.
  • Проверил совместимость с минимальной версией зависимостей.

Пользователь/администратор:

  • Использует apt/aptitude для установки зависимостей.
  • При локальной установке использует GDebi или apt-get install -f при ошибках.

Критерии приёмки

  • Пакет устанавливается без ошибок в чистой среде.
  • Все файлы попадают в ожидаемые места и имеют корректные права.
  • Указанные зависимости удовлетворяются и не ломают систему.
  • Скрипты установки/удаления выполняются без побочных эффектов.

Короткий справочник терминов

  • DEB: формат пакета Debian, состоящий из control.tar.gz, data.tar.gz и debian-binary.
  • Control: метаданные пакета (описание, зависимости, поддерживающая информация).
  • FHS: Filesystem Hierarchy Standard — стандарт иерархии каталогов в UNIX‑похожих системах.

Итог и рекомендации

Debreate — удобный инструмент для быстрого создания DEB‑пакетов, особенно для простых сценариев: скрипты, утилиты и небольшие приложения. Для распространения внутри команды или друзьям он хорош: снижает рутинную работу и позволяет быстро получить рабочий .deb. Для публикации в официальных репозиториях или при более сложных требованиях используйте более строгие инструменты сборки и следуйте Debian Policy.

Ключевые шаги: подготовить файлы, заполнить Control, добавить зависимости, проверить скрипты, собрать и протестировать в чистой среде.

Важно: всегда тестируйте пакет в среде, максимально близкой к целевой, чтобы избежать неожиданных конфликтов зависимостей и проблем с правами.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Архивирование твитов в Google Таблицы
Маркетинг

Архивирование твитов в Google Таблицы

CupCloud — синхронизация открытых файлов между ПК
Приложения

CupCloud — синхронизация открытых файлов между ПК

Исправить «This app will not work on your device» в Microsoft Store
Windows

Исправить «This app will not work on your device» в Microsoft Store

Сброс групповой политики Windows: шаги и советы
Windows

Сброс групповой политики Windows: шаги и советы

Несколько аккаунтов Dropbox на Android
Мобильные приложения

Несколько аккаунтов Dropbox на Android

Ошибка Microsoft Store 0x80d03801 — как исправить
Windows

Ошибка Microsoft Store 0x80d03801 — как исправить