Исходная статья: Пример. Создание проекта с QML в QtCreator и сборка deb-пакета для Astra Linux
Удалить этот текст по окончании!
Подготовка рабочего места
На рабочем месте должны быть соблюдены следующие условия:
рабочее место функционирует под ОС Astra Linux 1.7.5 на уровне защищенности «Усиленный» или «Максимальный»;
создана учетная запись с правами администратора, от имени которой будет происходить создание проекта и сборка пакета;
отключена блокировка трассировки
ptrace
.
Подготовка проекта в Qt Creator
Общие сведения
Для работы в Qt Creator был создан демонстрационный пример, который может использоваться как шаблон для разработчиков на Qt.
Пример написан на языках C++ и QML.
Пример обладает следующим функционалом:
загрузка разных страниц с текстом и картинками;
светлая/темная тема;
загрузка файлов локализации.
В примере используется библиотека Qt-5.15.x и базовые модули Qt. Для более сложных проектов необходимо использовать дополнительные библиотеки и компоненты, например KDE Frameworks и Kirigami UI Framework.
Подготовка репозиториев
Следует убедиться, что подключены необходимые репозитории, для этого вывести содержимое файла /etc/apt/sources.list
командой:
В выводе команды должны присутствовать следующие репозитории:
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
Если данных репозиториев нет, необходимо добавить их в файл.
Убедившись, что нужные репозитории подключены, необходимо обновить список пакетов командой:
sudo apt update
Установка Qt и Qt Creator
Для установки Qt и Qt Creator необходимо выполнить команды:
sudo apt install qt5-default
sudo apt install clang cmake
sudo apt install qtdeclarative5-dev qtquickcontrols2-5-dev qttools5-dev
sudo apt install qtcreator
Открытие проекта
Для того чтобы запустить Qt Creator, необходимо в меню Пуск выбрать Разработка — Qt Creator.
Для того чтобы открыть проект, необходимо:
- в окне программы в меню выбрать Файл — Открыть файл или проект;
- в открывшемся окне найти папку проекта и выбрать файл
CmakeLists.txt
, затем нажать [Открыть].
В окне программы будет отображено дерево каталогов и файлов проекта.
Сборка проекта
Для того чтобы запустить сборку проекта, необходимо в окне программы в меню выбрать Сборка — Запустить или нажать комбинацию клавиш <Ctrl+R>.
Сборка deb-пакета
Условия сборки пакета
Сборка пакета может осуществляться несколькими способами:
на отдельном компьютере (с использованием chroot-окружения);
в контейнерах;
в виртуальных машинах.
В данной статье приведен пример ручной сборки пакета.
Перед началом сборки пакета должны быть установлены следующие пакеты:
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
— скрипт, запускаемый перед удалением пакета.
Установка debootstrap
Инструмент debootstrap
используется для подготовки окружения сборки. Для установки инструмента выполнить команду:
Подготовка окружения сборки
Выполнить команду:
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
добавить репозитории:
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
Выполнить команды для подготовки общего каталога сборки пакетов:
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/
Выполнить команду:
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 http://download.astralinux.ru/astra/stable/4.7_arm/repository-base/ 4.7_arm main contrib non-free deb http://download.astralinux.ru/astra/stable/4.7_arm/repository-extended/ 4.7_arm main contrib non-free
Выполнить команды для подготовки общего каталога сборки пакетов:
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/
Сборка пакета
Выполнить команды монтирования:
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
/optchroot
-окружение, выполнив команды:
cp -a astra-sample-app-0.1.2 chroot-amd64/opt/
sudo chroot chroot-amd64
Выполнить команды сборки пакета:
cd /opt/astra-sample-app-0.1.2
mk-build-deps -i -r
dpkg-buildpackage -us -uc -ui -j$(nproc)
Собранный пакет будет находиться в каталоге chroot-
.amd64
/opt
Если есть необходимость очистить окружение сборки, выполнить команды:
dpkg -l | grep build-deps
apt purge '*build-deps*'
apt autoremove --purge
После сборки пакетов необходимо размонтировать каталоги из хостовой системы, выполнив команды:
sudo umount chroot-amd64/proc
sudo umount chroot-amd64/sys
sudo umount chroot-amd64/dev/pts
sudo umount chroot-amd64/dev/shm
Выполнить команды монтирования:
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
-окружение, выполнив команды:
cp -a astra-sample-app-0.1.2 chroot-arm64/opt/
sudo chroot chroot-arm64
Выполнить команды сборки пакета:
cd /opt/astra-sample-app-0.1.2
mk-build-deps -i -r
dpkg-buildpackage -us -uc -ui -j$(nproc)
Собранный пакет будет находиться в каталоге chroot-arm64/opt
.
Если есть необходимость очистить окружение сборки, выполнить команды:
dpkg -l | grep build-deps
apt purge '*build-deps*'
apt autoremove --purge
После сборки пакетов необходимо размонтировать каталоги, выполнив команды:
sudo umount chroot-arm64/proc
sudo umount chroot-arm64/sys
sudo umount chroot-arm64/dev/pts
sudo umount chroot-arm64/dev/shm
Установка пакета
Для установки собранного пакета необходимо из каталога, в котором располагается пакет, выполнить команду:
sudo apt install ./astra-sample-app_0.1.2
_amd64.deb
Запуск программы
Запуск программы выполняется одним из следующих способов:
- через меню Пуск — Утилиты — Astra Sample App;
из терминала — выполнить команду:
astra-sample-app
Запуск приложения в режиме «Мобильный» выполняется следующим образом:
- вызвать экран приложений — коснуться нижней части экрана и провести пальцем вверх;
- на экране приложений в разделе Мобильные коснуться значка приложения «Astra Sample App».