Сборка пакетов, предназначенных для процессорной архитектуры amd64, выполняется в следующем порядке:
- установить инструмент
debootstrap
и QEMU, выполнив команду:sudo apt install debootstrap qemu-user-static - подготовить окружение
chroot
, выполнив команды:NDK_DIR=/opt/build-environments/astralinux-1.7
REPO_URL=http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/
sudo debootstrap --arch=amd64 --components=main,contrib,non-free 1.7_x86-64 "${NDK_DIR}" "${REPO_URL}"
echo "export LC_ALL=C" | sudo tee -a "${NDK_DIR}/root/.bashrc"
- выполнить команды монтирования каталогов в окружение
chroot
:sudo mount -t proc proc ${NDK_DIR}/proc/
sudo mount -o bind /sys/ ${NDK_DIR}/sys/
sudo mount -o bind /dev/ ${NDK_DIR}/dev/
sudo mount -o bind /dev/pts ${NDK_DIR}/dev/pts
- добавить нужные репозитории в файл
/opt/build-environments/astralinux-1.7/etc/apt/sources.list
;deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free
- подготовить окружение сборки, выполнив команды:
sudo chroot /opt/build-environments/astralinux-1.7 apt update
sudo chroot /opt/build-environments/astralinux-1.7 apt install devscripts quilt
- подготовить общий каталог для сборки пакетов, выполнив команду:
sudo chown -R "${USER}:${USER}" /opt/build-environments/astralinux-1.7/opt/
Простой сценарий, подготавливающий окружение сборки в соответствии с приведенным выше описанием, доступен по ссылке make_chroot_astralinux-1.7_amd64.sh;
- собрать пакеты (на примере пакета
plasma-mobile
), выполнив команды:cp -a plasma-mobile-5.27.2 plasma-mobile_5.27.2.orig* /opt/build-environments/astralinux-1.7/opt/
sudo chroot /opt/build-environments/astralinux-1.7
cd /opt/plasma-mobile-5.27.2
mk-build-deps -ir
dpkg-buildpackage -us -uc -ui -j$(nproc)
- очистить окружение сборки, выполнив команды:
dpkg -l | grep build-deps
apt purge '*build-deps*'
apt autoremove --purge
- размонтировать каталоги окружения
chroot
, выполнив команды:sudo umount ${NDK_DIR}/proc/
sudo umount ${NDK_DIR}/sys/
sudo umount ${NDK_DIR}/dev/
sudo umount ${NDK_DIR}/dev/pts
Сборка пакетов, предназначенных для процессорной архитектуры arm64, выполняется в следующем порядке:
- установить инструмент
debootstrap
и QEMU, выполнив команду:sudo apt install debootstrap qemu-user-static
- подготовить окружение
chroot
, выполнив команды:NDK_DIR=/opt/build-environments/astralinux-4.7
REPO_URL=http://download.astralinux.ru/astra/stable/4.7_arm/repository-base/
sudo debootstrap --arch=arm64 --foreign --components=main,contrib,non-free 4.7_arm "${NDK_DIR}" "${REPO_URL}"
sudo cp -av /usr/bin/qemu-aarch64-static "${NDK_DIR}/usr/bin/"
echo "export LC_ALL=C" | sudo tee -a "${NDK_DIR}/root/.bashrc"
- выполнить команды монтирования каталогов в окружение
chroot
:sudo mount -t proc proc ${NDK_DIR}/proc/
sudo mount -o bind /sys/ ${NDK_DIR}/sys/
sudo mount -o bind /dev/ ${NDK_DIR}/dev/
sudo mount -o bind /dev/pts ${NDK_DIR}/dev/pts
- добавить нужные репозитории в файл
/opt/build-environments/astralinux-4.7/etc/apt/sources.list
;deb https://download.astralinux.ru/astra/stable/4.7_arm/repository-base 4.7_arm main contrib non-free deb https://download.astralinux.ru/astra/stable/4.7_arm/repository-extended/ 4.7_arm main contrib non-free
- подготовить окружение сборки, выполнив команды:s
udo chroot /opt/build-environments/astralinux-4.7 /debootstrap/debootstrap --second-stage
sudo chroot /opt/build-environments/astralinux-4.7 apt update
sudo chroot /opt/build-environments/astralinux-4.7 apt install devscripts quilt
- подготовить общий каталог для сборки пакетов, выполнив команду:
sudo chown -R "${USER}:${USER}" /opt/build-environments/astralinux-4.7/opt/
Простой сценарий, подготавливающий окружение сборки в соответствии с приведенным выше описанием, доступен по ссылке make_chroot_astralinux-4.7_arm64.sh;
- собрать пакеты (на примере пакета
plasma-mobile
), выполнив команды:cp -a plasma-mobile-5.27.2 plasma-mobile_5.27.2.orig* /opt/build-environments/astralinux-4.7/opt/
sudo chroot /opt/build-environments/astralinux-4.7
cd /opt/plasma-mobile-5.27.2
mk-build-deps -ir
dpkg-buildpackage -us -uc -ui -j$(nproc)
- очистить окружение сборки, выполнив команды:
dpkg -l | grep build-deps
apt purge '*build-deps*'
apt autoremove --purge
- размонтировать каталоги окружения
chroot
, выполнив команды:sudo umount ${NDK_DIR}/proc/
sudo umount ${NDK_DIR}/sys/
sudo umount ${NDK_DIR}/dev/
sudo umount ${NDK_DIR}/dev/pts