Подготовка рабочего места
На рабочем месте должны быть соблюдены следующие условия:
рабочее место функционирует под управлением ОС Astra Linux 1.7.5 на уровне защищенности «Усиленный» или «Максимальный»;
создана учетная запись с правами администратора, от имени которой будет происходить создание проекта и сборка пакета;
отключена блокировка трассировки ptrace
;.
Подготовка проекта в Qt Creator
Общие сведения
Для работы в Qt Creator был создан демонстрационный проект, который может использоваться как шаблон для разработчиков на Qt. Архив с проектом доступен по ссылке: https://disk.astralinux.ru/s/kSrtg5JKnzmeGdn.
Демонстрационный проект написан на языках C++ и QML. Демонстрационный проект обладает следующим функционалом:
Информация |
---|
В демонстрационном проекте используется библиотека Qt-5.15.x и базовые модули Qt. Для более сложных проектов необходимо использовать дополнительные библиотеки и компоненты, например KDE Frameworks и Kirigami UI Framework. |
Подготовка репозиториев
Для установки необходимых для сборки пакетов должны быть подключены следующие репозитории:
Блок кода |
---|
deb http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free
deb http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free |
Следует убедиться, что нужные репозитории подключены, выведя содержимое файла /etc/apt/sources.list
командой:
Command |
---|
cat /etc/apt/sources.list |
Если в выводе команды данных репозиториев нет, необходимо добавить их в файл /etc/apt/sources.list
.
Убедившись, что нужные репозитории подключены, необходимо обновить список пакетов командой:
Установка Qt и Qt Creator
Для установки Qt и Qt Creator необходимо выполнить команды:
Command |
---|
sudo apt install qt5-default
sudo apt install clang cmake
sudo apt install qtdeclarative5-dev qtquickcontrols2-5-dev qttools5-dev
sudo apt install qtcreator
|
Сборка проекта
Для того чтобы собрать демонстрационный проект, необходимо:
![](/download/attachments/323674041/image-2024-7-25_13-6-18.png?version=1&modificationDate=1722591201142&api=v2)
- в окне программы в меню выбрать Файл — Открыть файл или проект;
![](/download/attachments/323674041/image-2024-7-25_13-6-40.png?version=1&modificationDate=1722591200600&api=v2)
- в открывшемся окне найти каталог проекта и выбрать файл
CmakeLists.txt
, затем нажать [Открыть]. В окне программы будет отображено дерево каталогов и файлов проекта;
![](/download/attachments/323674041/image-2024-7-25_13-7-32.png?version=1&modificationDate=1722591199836&api=v2)
- запустить сборку проекта — в окне программы в меню выбрать Сборка — Запустить или нажать комбинацию клавиш <Ctrl+R>.
Сборка deb-пакета
Условия сборки пакета
Перед началом сборки пакета должны быть установлены следующие пакеты:
dpkg-dev
— набор инструментов для работы с исходными файлами;
devscripts
— набор сценариев для сборки пакета;
equivs
— необходим для запуска инструмента mk-build-deps
для установки зависимых пакетов.
Для сборки пакета необходимы следующие каталоги и файлы:
astra-sample-app-0.1.2
— каталог, название которого соответствует названию и версии собираемого пакета;astra-sample-app-0.1.2/debian
— каталог с нужными для сборки файлами:control
— основной файл с описанием собираемого пакета и его зависимостей;
changelog
— файл с описанием истории изменения пакета;
rules
— файл с правилами компиляции пакета во время его сборки.
Каталог astra-sample-app-0.1.2/debian
также содержит следующие файлы:
postinst
— сценарий, запускаемый после установки пакета;postrm
— сценарий, запускаемый после удаления пакета;preinst
— сценарий, запускаемый перед установкой пакета;prerm
— сценарий, запускаемый перед удалением пакета.
Для сборки пакета под конкретные версии различных дистрибутивов Linux удобнее всего использовать отдельные chroot
-окружения.
Информация |
---|
c hroot -окружение позволяет запустить ОС, предназначенную для одной архитектуры (например arm64/ aarch64 ), внутри ОС, предназначенной для другой архитектуры (например amd64/ x86_64 ).
|
Примеры сценариев, автоматически настраивающих chroot-окружения сборки для Astra Linux под архитектуры amd64
(x86_64
) и arm64
(aarch64
), можно найти в каталоге astra-sample-app/linux
.
Далее рассмотрена ручная настройка окружения сборки с использованием инструмента debootstrap
.
Установка debootstrap
Инструмент debootstrap
используется для подготовки окружения сборки. Для установки инструмента выполнить команду:
Command |
---|
sudo apt install debootstrap qemu-user-static |
Для создания окружения сборки используется команда следующего вида:
Command |
---|
sudo debootstrap --arch=<архитектура> --components=<компоненты> <кодовое_имя_репозитория> <название_каталога_chroot> <ссылка_на_репозиторий> |
Подготовка окружения сборки
панель |
---|
Tabs Container |
---|
| Tabs Page |
---|
| Подготовка окружения сборки выполняется в следующем порядке: - выполнить команду:
Command |
---|
sudo debootstrap --arch=amd64 --components=main,contrib,non-free 1.7_x86-64 chroot-amd64 http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/
|
- в файл
chroot-amd64/etc/apt/sources.list добавить репозитории:
панель |
---|
Tabs Container |
---|
| Tabs Page |
---|
| Блок кода |
---|
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 |
|
Tabs Page |
---|
| Блок кода |
---|
deb https://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/extended-repository/ 1.8_x86-64 main contrib non-free non-free-firmware
deb https://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/main-repository/ 1.8_x86-64 main contrib non-free non-free-firmware |
|
|
|
- выполнить команды для подготовки каталога сборки:
Command |
---|
echo "export LC_ALL=C" | sudo tee -a chroot-amd64/root/.bashrc
sudo chroot chroot-amd64 apt update
sudo chroot chroot-amd64 apt install devscripts quilt equivs
sudo chown -R "${USER}:${USER}" chroot-amd64/opt/
|
|
Tabs Page |
---|
| Подготовка окружения сборки выполняется в следующем порядке: - выполнить команду:
Command |
---|
sudo debootstrap --arch=arm64 --components=main,contrib,non-free 4.7_arm chroot-arm64 http://download.astralinux.ru/astra/stable/4.7_arm/repository-base/
|
- в файл
chroot-amd64/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 |
- выполнить команды для подготовки каталога сборки:
Command |
---|
echo "export LC_ALL=C" | sudo tee -a chroot-arm64/root/.bashrc sudo chroot chroot-arm64 /debootstrap/debootstrap --second-stage sudo chroot chroot-arm64 apt update sudo chroot chroot-arm64 apt install devscripts quilt equivs sudo chown -R "${USER}:${USER}" chroot-arm64/opt/
|
|
|
|
Сборка пакета
панель |
---|
Tabs Container |
---|
| Tabs Page |
---|
| Сборка пакета выполняется в следующем порядке: - выполнить команды монтирования:
Command |
---|
sudo mount -t proc proc chroot-amd64/proc
sudo mount -t sysfs sys chroot-amd64/sys
sudo mount -t devpts devpts chroot-amd64/dev/pts
sudo mount -o bind /dev/shm chroot-amd64/dev/shm
|
- скопировать каталог проекта в каталог
chroot-amd64 /opt и перейти в chroot -окружение, выполнив команды:
Command |
---|
cp -a astra-sample-app-0.1.2 chroot-amd64/opt/
sudo chroot chroot-amd64
|
- выполнить команды сборки пакета:
Command |
---|
cd /opt/astra-sample-app-0.1.2
mk-build-deps -i -r
dpkg-buildpackage -us -uc -ui -j$(nproc)
|
Собранный пакет будет расположен в каталоге chroot-amd64 /opt . Если есть необходимость очистить окружение сборки, выполнить команды: Command |
---|
dpkg -l | grep build-deps
apt purge '*build-deps*' apt autoremove --purge
|
После сборки пакета необходимо размонтировать каталоги, выполнив команды: Command |
---|
sudo umount chroot-amd64/proc
sudo umount chroot-amd64/sys
sudo umount chroot-amd64/dev/pts
sudo umount chroot-amd64/dev/shm
|
|
Tabs Page |
---|
| Сборка пакета выполняется в следующем порядке: - выполнить команды монтирования:
Command |
---|
sudo mount -t proc proc chroot-arm64/proc
sudo mount -t sysfs sys chroot-arm64/sys
sudo mount -t devpts devpts chroot-arm64/dev/pts
sudo mount -o bind /dev/shm chroot-arm64/dev/shm
|
- скопировать каталог проекта в каталог
chroot-arm64/opt и перейти в chroot -окружение, выполнив команды:
Command |
---|
cp -a astra-sample-app-0.1.2 chroot-arm64/opt/
sudo chroot chroot-arm64
|
- выполнить команды сборки пакета:
Command |
---|
cd /opt/astra-sample-app-0.1.2
mk-build-deps -i -r
dpkg-buildpackage -us -uc -ui -j$(nproc)
|
Собранный пакет будет расположен в каталоге chroot-arm64/opt . Если есть необходимость очистить окружение сборки, выполнить команды: Command |
---|
dpkg -l | grep build-deps
apt purge '*build-deps*' apt autoremove --purge
|
После сборки пакета необходимо размонтировать каталоги, выполнив команды: Command |
---|
sudo umount chroot-arm64/proc
sudo umount chroot-arm64/sys
sudo umount chroot-arm64/dev/pts
sudo umount chroot-arm64/dev/shm
|
|
|
|
Установка deb-пакета
Для установки собранного пакета необходимо из каталога, в котором располагается пакет, выполнить команду:
Command |
---|
sudo apt install ./astra-sample-app_0.1.2 _amd64.deb
|
Запуск программы
панель |
---|
Tabs Container |
---|
| Tabs Page |
---|
| Запуск программы выполняется одним из следующих способов: Запуск программы в режиме «Мобильный» выполняется следующим образом: - вызвать экран приложений — коснуться нижней части экрана и провести пальцем вверх;
- на экране приложений в разделе Мобильные коснуться значка программы «Astra Sample App».
|
Tabs Page |
---|
| Запуск программы выполняется одним из следующих способов: Запуск программы в режиме «Мобильный» выполняется следующим образом: - вызвать экран приложений — коснуться нижней части экрана и провести пальцем вверх;
- на экране приложений в разделе Мобильные коснуться значка программы «Astra Sample App».
|
|
|