Сборка пакета с помощью debconf
сборка .deb пакета с помощью debconf
Недавно столкнулся с задачей создания .deb пакета. Поскольку информация в сети разбросана и само описание команд debhelper несколько сумбурно, ниже привожу список действий помогающих собрать архив с нуля:
Создание исходников.
#: mkdir package-1.0
#: echo "Sample file in package" > package-1.0/file
Создание специального архива с исходниками
#: tar czf package-1.0.tar.gz package-1.0/
#: dh_make -c apache -f ../package-1.0.tar.gz
Редактирование параметров пакета.
#: nano debian/control
Создание конфигураций:
#: nano debain/package.templates
Template: package/test
Type: boolean
Default: true
Description: Test boolean property
Test boolean property long description
Создание конфига
#: nano debian/package.config
#!/bin/bash -e
. /usr/share/debconf/confmodule
db_input medium package/test || true
db_go || true
Вызов конфига из postinst скрипта. debhelper не может сгенерировать такой postinst так как “слишком сложно”.
#: mv debian/postinst.ex debian/postinst
#: nano debian/postinst
...
configure)
. /usr/share/debconf/confmodule
db_get package/test
echo "$RET;
;;
...
Копирование скриптов в некую временную директорию
#: sudo dh_installdebconf
#: sudo dh_installdeb
Создание пакета
#: sudo dh_builddeb
#: cd ../
Пакет package_1.0-1_any.deb готов. Имя пакета package изменить везде выше на необходимое. Например: mycoollapp.