Создание .deb пакетов на Ubuntu
Ключевая цель
Научиться создавать .deb пакеты на Ubuntu двумя простыми методами: быстрый CLI-подход через CheckInstall и полностью настраиваемый GUI-подход через Debreate. Подойдёт для разработчиков, packager-ов и системных администраторов, которые хотят распространять ПО в формате Debian/Ubuntu.
CheckInstall — быстрый способ создать .deb
CheckInstall создаёт .deb, наблюдая за установкой из исходников. Это полезно, когда вам нужен пакет «быстро и рабочий» без ручного написания control-файлов.
Шаги (кратко):
- Установите checkinstall:
sudo apt-get install checkinstall- Получите исходники, распакуйте архив и перейдите в каталог проекта.
- Запустите конфигурацию и решите зависимости:
- Выполните
./configure— терминал покажет, каких dev-библиотек не хватает. - Установите недостающие зависимости через
sudo apt install <пакет-dev>.
- Соберите проект:
- Выполните
make. Это может занять время в зависимости от объёма кода и производительности CPU.
- Создание .deb с помощью checkinstall:
- Выполните
sudo checkinstallи следуйте интерактивным подсказкам (имя пакета, версия, архитектура и т. п.).
Пример поведения checkinstall: утилита предложит меню с опциями (изменить имя, версию, архитектуру, каталог источника). Например, чтобы изменить архитектуру на 32‑битную, выберите соответствующую опцию и введите i386.





Важные замечания по CheckInstall:
- Плюсы: очень быстро, не требует написания метафайлов вручную. Отлично для внутренних сборок и тестирования.
- Минусы: контроль точности метаданных и скриптов (preinst/postinst) ограничен; для публичных репозиториев лучше делать полноценный debian/* пакет.
Debreate — GUI для аккуратной упаковки
Debreate предоставляет пошаговый графический интерфейс для создания пакетов Debian/Ubuntu. Это удобно, если вы предпочитаете визуальные формы и хотите детально настроить метаданные.
Основная последовательность действий в Debreate:
- Задайте имя пакета, версию, email мейнтейнера и краткое описание.
- Укажите каталог с файлами для включения в пакет (Files directory).
- Настройте зависимости, имена пакетов и версии (Dependencies).
- При необходимости добавьте changelog, настройки ярлыков меню и скрипты установки.
- Нажмите «Start Building» и укажите выходную папку.



Плюсы и минусы Debreate:
- Плюсы: простой GUI, полный контроль над метаданными, удобно для пакетов, предназначенных для распространения.
- Минусы: требуется подготовить структуру файлов заранее; менее удобен для мгновенных тестовых сборок.
Когда выбрать CheckInstall, а когда Debreate
- CheckInstall: когда нужен быстрый пакет для тестов или локального развёртывания. Хорош для прототипов.
- Debreate: когда упаковка идёт в релиз, требуется точный контроль зависимостей, скриптов и структуры пакета.
Пошаговая методология (мини‑SOP)
- Оцените цель: тест/релиз/распространение.
- Подготовьте исходники и определите зависимости.
- Для теста: используйте CheckInstall (быстро соберите .deb).
- Для релиза: подготовьте структуру debian/, либо используйте Debreate для генерации корректных метаданных.
- Тестируйте .deb в чистой среде (контейнер/VM) перед распространением.
Чеклист перед сборкой
- Проверены зависимости для сборки (dev‑пакеты).
- [ ] Очищена рабочая директория от предыдущих артефактов (
make clean). - Установлен checkinstall (для быстрой сборки) или Debreate (для GUI-сборки).
- Протестирована работа приложения после установки .deb.
- Проверены права и модули (предусмотрены postinst/prerm, если нужно).
Ролевые рекомендации
- Разработчик: используйте CheckInstall для быстрых проверок, но по возможности подготовьте debian/ и запишите контрольные скрипты.
- Packager/RELEASE менеджер: используйте Debreate или полностью ручную сборку Debian-пакетов для контроля качества.
- Сисадмин: тестируйте установку .deb в чистой VM до развёртывания в продуктиве.
Отладка и частые проблемы
- Проблема: missing headers / библиотеки на этапе
./configure.- Решение: установить соответствующие
-devпакеты через apt.
- Решение: установить соответствующие
- Проблема: собранный .deb не устанавливается из‑за зависимостей.
- Решение: уточните список зависимостей и укажите их в Debreate или при помощи
dpkg -iдалееsudo apt-get -f install.
- Решение: уточните список зависимостей и укажите их в Debreate или при помощи
- Проблема: конфликт файлов при установке.
- Решение: проверьте файлы в пакете и корректность путей, используйте
dpkg -c <файл.deb>для просмотра содержимого.
- Решение: проверьте файлы в пакете и корректность путей, используйте
Примеры альтернативных подходов
- Полная ручная упаковка через debhelper и dh_make: даёт максимальную гибкость и соответствует практике официальных пакетов.
- Использование fpm (Effing Package Management): удобный инструмент для создания пакетов разных форматов (rpm, deb) из одной конфигурации.
- Контейнеризация (Docker): вместо распространения .deb можно распространять образ контейнера.
Когда эти методы не подойдут (контрпримеры)
- Нужен сложный пакет с множеством скриптов конфигурации и тестов CI — лучше писать полноценный debian/ и запускать lintian.
- Требуется сборка для множества дистрибутивов и архитектур — рассмотрите CI/CD с cross‑compilation и использованием fpm или систем сборки пакетов.
Критерии приёмки
- Пакет устанавливается без ошибок на чистой Ubuntu-системе нужной версии.
- Все файлы оказываются в ожидаемых местах и имеют правильные права.
- Зависимости заявлены корректно и разрешаются при установке.
- Скрипты pre/post выполняются без критических ошибок.
Быстрые советы и эвристики
- Помните:
checkinstallхорошо для скорости, но не заменяет полноценной упаковки для публичного релиза. - Проверяйте пакет в clean VM — локальная среда разработчика может скрывать проблемы.
- Используйте семантическое версионирование для пакетов (MAJOR.MINOR.PATCH).
Краткое резюме
CheckInstall и Debreate покрывают две основные потребности: быстрые локальные сборки и аккуратная визуальная упаковка для распространения. Для серьёзных релизов рекомендуется переходить к стандартной Debian-упаковке с debhelper или интегрировать сборку в CI.
Важно: выбор инструмента зависит от цели: прототип/тест или публичное релизное распространение.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента