Сборка выполняется в chroot-окружении. Далее приводится пример сборки для Astra Linux Special Edition (архитектура amd64, дистрибутив 1.7_x86_64).
- Создать каталог для chroot-окружения, например, DIR.
Выполнить команду:
Command sudo debootstrap --variant=minbase --components=main,contrib,non-free --arch=amd64
...
1.7_x86-64 DIR <путь_к_репозиторию>
В качестве репозитория могут использоваться Интернет-репозитории, локальные или сетевые репозитории, а также примонтированные диски Astra Linux.
Создать в окружении каталог для размещения собираемого пакета, например:
Блок кода sudo mkdir DIR/build
и скопировать в этот каталог собираемый пакет.
Указать в созданном chroot-окружении репозитории, из которых будет выполняться установка пакетов в окружение (при использовании локальных репозиториев - создать в окружении каталоги для монтирования, смонтировать туда нужные репозитории используя опцию монтирования -o bind). Например
...
:
Command echo "deb
...
https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free"
...
| sudo tee -a DIR/etc/apt/sources.list
Перейти в сroot-окружение:
Command chroot DIR
...
и выполнить в chroot-окружении команды:
Обновление кеша пакетов, установка пакета build-essential и распаковка собираемого пакета:Command apt update
apt
...
install build-essential
...
adduser builder
su - builder
cd /build
dpkg-source -x
...
<имя_пакета>_*.dsc
dpkg-buildpackage
Перейти в распакованный каталог с исходными текстами пакета и выполнить команды для установки сборочных зависимостей (build-depends) пакета и его сборки:
Command apt build-dep ./
dpkg-buildpackage -us -uc
Установка build-depends (можно командой satisfydeps https://yadi.sk/d/rSHg-_6_3LcNvF)
...
Проверка установки и работы пакета производиться производится в виртуальной машине с целевой системой.