Skip to content

Minimal deb package template for WirenBoard projects using dpkg-buildpackage. Simplifies file installation on systems.

License

Notifications You must be signed in to change notification settings

wirenboard/wb-git-template-dpkg-simple

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Шаблон для создания простого deb-пакета

Этот репозиторий предоставляет шаблон для создания простых deb-пакетов
посредством сборки инструментом dpkg-buildpackage. Данный пример пакета
предназначен для установки на контроллеры Wiren Board.

Шаблон включает примеры виртуальных устройств, написанных на JavaScript,
и необходимые скрипты для сборки пакета.

В процессе создании deb-пакета используются два различных термина:

  • Сборка - это предварительная подготовка файлов проекта перед упаковкой
    в пакет, например перемещение файлов, кросс-компиляция и т.д.
    Этим шагом в dpkg-buildpackage занимается debhelper.
  • Упаковка - это процесс непосредственного создания deb-пакета из уже
    готовых файлов. Этим шагом в dpkg-buildpackage занимается dpkg-deb.

Важно, что упаковка и сборка - это разные процессы. Упаковка не включает
в себя сборку, так же как сборка не включает в себя упаковку.

Содержание

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

  • src/ — исходные файлы JavaScript:
    • vd-pump-1.js — пример виртуального насоса
    • vd-wall-switch-1.js — пример виртуального настенного выключателя
    • vd-water-meter-1.js — пример виртуального счетчика воды
  • debian/ — файлы, необходимые для сборки пакета:
    • changelog — лог изменений
    • compat — версия совместимости debhelper
    • control — метаданные пакета
    • rules — скрипт сборки
    • dirs — список директорий для создания
    • postinst — скрипт, выполняемый после установки
  • Makefile — скрипт для установки файлов во время сборки
  • LICENSE — лицензия на использование программного обеспечения
  • .gitignore — файлы и директории, игнорируемые Git
  • Jenkinsfile — конфигурация для CI/CD
  • README.md — документация (настоящее руководство)

Настройка пакета

Перед сборкой пакета необходимо внести изменения в некоторые файлы:

  1. Настройте исходные файлы:

    • Добавьте или измените файлы в директории src/ в соответствии с вашими
      потребностями
  2. Измените название пакета:

    • В debian/control замените wb-packetname на желаемое имя
      пакета в полях Source и Package
  3. Обновите информацию в changelog:

    • Отредактируйте файл debian/changelog, добавив информацию о
      вашей версии пакета. Или создайте новый с помошью инструмента dch
  4. Отредактируйте makefile:

    • Измените содержимое Makefile в соответствии с вашими потребностями

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

Установка необходимых инструментов

Убедитесь, что у вас установлены следующие пакеты:

  • git - для клонирования репозитория c GitHub
  • dpkg-buildpackage в пакете dpkg-dev - нужен для сборки в deb-пакет
  • debhelper - его использует dpkg-buildpackage
  • make - его запустит debhelper для сборки файлов
$ sudo apt update && \
  sudo apt install git && \
  sudo apt install dpkg-dev && \
  sudo apt install debhelper && \
  sudo apt install make

Сборка

  1. Клонируйте репозиторий:

    $ git clone https://github.com/wirenboard/wb-git-template-dpkg-simple.git && \
    cd wb-git-template-dpkg-simple
    

В процессе разработки удобно клонировать свою ветку и сразу провести установку

$ GIT_BRANCH_NAME="feature/add-template-files-first-iteration"
$ git clone -b "${GIT_BRANCH_NAME}" --single-branch "https://github.com/wirenboard/wb-git-template-dpkg-simple.git" && \
  cd wb-git-template-dpkg-simple
  1. Соберите пакет:

    $ dpkg-buildpackage -rfakeroot -us -uc
    

    После успешной сборки в родительской директории появится файл *.deb

  2. Отчистка сгенерированных файлов:

При сборке генерируется много файлов, которые можно удалить:

$ dpkg-buildpackage -rfakeroot -Tclean

Установка и удаление пакета

Установка

$ sudo apt install -y ../wb-packetname_0.0.1_all.deb

После установки новые виртуальные устройства станут доступны на вашем
контроллере Wiren Board.

Удаление

$ sudo apt remove wb-packetname

Дополнительная информация

Использование Makefile

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

В данном шаблоне Makefile используется для копирования файлов из src/
в целевую директорию. Обратите внимание, что данный файл исполняется только
во время сборки пакета, он не работает при установке на машине пользователя.
Если нужно сделать что-то перед/после установки - нужно использовать
скрипты debian/postinst и тд.

Файл debian/install

Альтернативно, вместо использования Makefile вы можете использовать
файл debian/install для указания файлов и директорий для установки:

src/*.js usr/lib/wirenboard/virtual-devices/

Скрипт postinst

Файл debian/postinst используется для выполнения действий после установки
пакета. В данном шаблоне он перезапускает сервис wb-rules:

#!/bin/sh
set -e

deb-systemd-invoke restart wb-rules

#DEBHELPER#

exit 0

Лицензия

Данный проект распространяется под лицензией The WB License (MIT-WB).
Подробности доступны в файле LICENSE.

About

Minimal deb package template for WirenBoard projects using dpkg-buildpackage. Simplifies file installation on systems.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published