Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 20 Следующий »

Исходная статья: Пример. Создание проекта с QML в QtCreator и сборка deb-пакета для Astra Linux

warning Удалить этот текст по окончании!

Подготовка рабочего места

На рабочем месте должны быть соблюдены следующие условия:

  • рабочее место функционирует под 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 командой:

cat /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 apt install debootstrap qemu-user-static

Подготовка окружения сборки

Выполнить команду:

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/opt и выполнить chroot командами:

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_<версия_пакета>_amd64.deb

Запуск программы

Запуск приложения для десктоп версии выполняется одним из следующих способов:

  • из терминала — выполнить команду:

    astra-sample-app
  • через меню Пуск — Утилиты — Astra Sample App.

Запуск приложения в режиме «Мобильный»:

  • Свайп вверх — Мобильные — Astra Sample App
  • Нет меток