Установка и настройка Aurora Platform SDK
Содержание
Загружаем файлы Platform SDK
В целом, ручная установка отлично описана в официальной документации на портале разработчика. Но я всё-равно приведу её сокращённую версию с некоторыми уточнениями.
Открываем в браузере директорию со ссылками на установщик: https://sdk-repo.omprussia.ru/sdk/installers/
Скорее всего в этой директории будет больше вариантов, чем предложено на самом портале разработчика, так что я рекомендую ходить напрямую сюда. Но учтите, что если вы хотите поддерживать прошлые версии ОС, а не только самую последнюю, устанавливать нужно соответствующую версию SDK.
Выбрав нужную версию, проваливаемся вглубь до самих установочных файлов. Я выбрал версию SDK 5.1.0, и у меня полный путь получился такой: https://sdk-repo.omprussia.ru/sdk/installers/5.1.0/PlatformSDK/5.1.0.24/
Теперь необходимо подключиться к нашему эмулятору и загрузить архивы с установочными файлами Platform SDK:
Первоначальная установка
Первым делом создаём директории для Platform SDK:
Официальная документация советует скопировать установочные файлы в директорию tarballs
, чтобы иметь к ним более удобный доступ. Я не вижу в этом большого смысла, особенно с учетом ограниченного дискового пространства в эмуляторе. Так что вместо копирования предлагаю сделать перемещение:
Для удобства добавляем пару строк в .bashrc
:
PSDK_DIR="$HOME/Tools/PlatformSDK/sdks/aurora_psdk"
PSDK_VER="5.1.0.24"
Если вы используете другую оболочку (Zsh, Fish, и т.д.), имеет смысл всё-равно добавить эти переменные в .bashrc
, чтобы использовать его в скриптах. В конфигурационном файле своей оболочки можно просто подключать файл .bashrc
, чтобы не дублировать экспорты.
Собственно, на этом Platform SDK можно считать установленным. Но пока он не умеет собирать приложения и в целом бесполезен. Так что переходим к настройке.
Настройка тулинга и таргетов
Platform SDK представляет собой набор библиотек и сборочных утилит, и для обеспечения правильности работы используется механизм подмены рут-директории chroot
. Так что первым делом нам нужно переключиться на сборочное окружение:
При первом запуске SDK предложит создать необходимые директории и выполнит базовую инициализацию окружения. После этого можно приступать к дальнейшей настройке:
# т.к. в CHROOT могут не подхватиться переменные, лучше задать их руками
# устанавливаем тулинг:
# устанавливаем таргеты:
Что тут происходит?
Первым шагом мы устанавливаем тулинг — набор библиотек и утилит для сборки и отладки приложений. Как видите, в имени файла есть указание архитектуры x86_64, именно из-за этого нам приходится разворачивать QEMU. Когда появится аналогичный дистрибутив для архитектуры ARM, всё станет значительно проще.
Файлы таргетов — это набор платформо-специфичных библиотек, которые обеспечивают сборку бинарных файлов под требуемую архитектуру процессора. На данный момент актуальные устройства бывают как на 32-х так и на 64-х битной архитектуре, поэтому обязательно надо ставить как минимум два таргета: armv7hl
(32 бита) и aarch64
(64 бита). Таргет для архитектуры x86_64
используется для сборки под эмулятор и пока что он нас не интересует, но лучше поставить для полноты комплекта — вдруг позже захочется тестировать приложения и в эмуляторе в том числе?
Теперь, когда все необходимые части SDK установлены, можно убедиться в правильности их установки с помощью следующей команды:
В результате её выполнения должны быть перечислены все доступные таргеты для разных архитектур в виде древовидной структуры. Если что-то кажется подозрительным или чего-то не хватает, лучше всё удалить и проделать заново. Перед удалением не забудьте выйти из chroot-окружения командой exit
. Сам процесс удаления описан в официальной документации, там же можно посмотреть команды для обновления тулинга и таргетов.
Добавление ключей для подписи
Важный шаг для сборки приложений — подпись rpm-файлов ключом разработчика. В процессе разработки и отладки можно использовать общедоступный ключ, который лежит на портале разработчика.
Позже, когда на Аврора ОС появятся сторонние магазины приложений, будет организован процесс получения сертификатов разработчика через портал, но пока все пользуются публичными сертификатами. Совсем без подписи нельзя — операционная система не позволит установить и запустить такое приложение.
Проверка установки
Итак, теперь всё готово к сборке приложений! Давайте сначала убедимся, что наша билд-система в принципе функционирует как надо. Для этого не выходя из chroot-окружения воспользуемся шаблоном приложения из официального репозитория ОМП:
Можно поизучать вывод сборочной утилиты, чтобы познакомиться с тем, что там происходит во время сборки. Если всё настроено правильно, в директории проекта появятся артефакты сборки: набор объектных о-файлов, но нас интересует директория RPMS — там должен появиться rpm-файл с дистрибутивом приложения. Пока что нам этого достаточно, можно выходить из chroot-окружения и переходить к следующему этапу: настройке сборки приложений с основной ОС!
Небольшая доработка
На данный момент в скрипте $PSDK_DIR/sdk-chroot
используется команда find
с аргументами, которые актуальны для полноценных дистрибутивов Linux. Однако, в Alpine Linux используется урезанная версия из BusyBox, в которой нет опции -printf
. Из-за этого при запуске sdk-chroot
в консоль будет валиться вывод find --help
, а сам скрипт будет работать не совсем корректно (хотя, проблем это не приносит, вроде). Так что для Alpine Linux имеет смысл немного подкорректировать скрипт:
Находим функцию detect_chroot_arch()
(в PSDK 5.1.0.24 она на 317 строчке) и заменяем в ней -printf "%f\n"
на -print
. Сохраняем файл и выходим из редактора. Теперь можно ещё раз выполнить команду сборки из пункта Проверка установки и убедиться, что лишний текст об использовании команды find
больше не выводится.
Бонус!
Установка PSDK через aurora-cli
Участник сообщества любителей ОС Аврора @Keqygenqt разработал довольно удобную утилиту aurora-cli для управления SDK и Platform SDK. Она позволяет автоматизировать некоторые рутинные действия, но пока, к сожалению, не все.
Утилита написана на Python, так что предварительно нужно установить в эмулятор дополнительные компоненты:
Также доустанавливаем необходимые пакеты, если их ещё нет:
Теперь можно переходить к установке самой утилиты:
Если всё прошло успешно, можно упростить установку и менеджмент различными версиями Platform SDK с помощью этой прекрасной утилиты.
После этих действий в домашней директории появится установленный Platform SDK, но тулинг и таргеты нужно будет установить самостоятельно.
С полным списком команд и возможностями утилиты можно ознакомиться на сайте разработчика.