В составе KasperskyOS Community Edition поставляется утилита cas-pm
(исполняемый файл toolchain/bin/cas-pm
), устанавливающая KPA-пакеты в собираемый образ решения на базе KasperskyOS.
Синтаксис shell-команды для запуска утилиты cas-pm
:
cas-pm {-p|--pkgsdir} <DIR> {-d|--dbpath} <PATH> {-a|--appsdir} <DIR>
[--rootdir <DIR>] [{-l|--layout} <PATH>] {-e|--extention} <ARG> {-r|--reinstall}
<-v[v...]> [--sign-ext <ARG>] [--index-ext <ARG>] <PACKAGES>... [--version] [-h|--help]
Параметры:
-p
|--pkgsdir
} <DIR
>Путь в системе, где установлен SDK, к директории, в которой расположены KPA-пакеты для установки.
-d
|--dbpath
} <PATH
>Полное имя файла базы данных SQLite, которая содержит данные об установленных KPA-пакетах. Если база данных еще не создана, она будет автоматически сгенерирована при запуске утилиты с указанным именем, и в нее будет добавлена информация об устанавливаемых KPA-пакетах.
Чтобы компонент PackageManager смог обнаружить базу данных после запуска решения на базе KasperskyOS, выполните следующие шаги:
cas-pm
скопируйте файл базы данных в файловую систему, которая будет помещена в образ решения на базе KasperskyOS. Если полное имя файла базы данных изначально указывалось в такой файловой системе, этот шаг можно пропустить.DB_PATH
в CMake-команду create_package_manager_entity()
(подробнее см. "Сценарий использования компонента PackageManager").-a
|--appsdir
} <DIR
>Путь в системе, где установлен SDK, к директории, в которую будут размещены KPA-пакеты перед записью в образ решения на базе KasperskyOS.
--rootdir
<DIR
>Директория, относительно которой будут установлены KPA-пакеты в образ решения на базе KasperskyOS. Директорию указывайте в той файловой системе, которая будет помещена в образ решения на базе KasperskyOS. Информация о размещении KPA-пакетов будет внесена в базу данных и потребуется компоненту PackageManager при удалении KPA-пакетов.
-l
|--layout
} <PATH
>Полное имя файла формата JSON, который используется для переопределения путей установки компонентов KPA-пакета. Полное имя файла указывайте в системе, где установлен SDK. По умолчанию при установке KPA-пакета его компоненты размещаются в директориях в зависимости от типа компонента KPA-пакета (подробнее смотри ключ componentType
в статье "Список объектов components".). Чтобы изменить названия директорий по умолчанию, следует задать свои значения для ключей: bin
, res
, lib
и manifestLocale
. Чтобы компонент PackageManager смог обнаружить компоненты KPA-пакета после запуска решения на базе KasperskyOS, имя этого файла нужно передать в параметре CUSTOM_LAYOUT
CMake-команды create_package_manager_entity()
(подробнее см. "Сценарий использования компонента PackageManager").
Пример файла custom_layout_schema.json
:
{
"bin" : "custom-bin-path",
"res" : "CustomResPath",
"lib" : "CustomLibPath",
"manifestLocale" : "Custom_manifestLocale_Path"
}
-e
|--extention
} <ARG
>Расширение для файла KPA-пакета. Значение по умолчанию: kpa
.
-r
|--reinstall
}Переустановка KPA-пакетов.
-v[v...]
Уровень журналирования действий, выполняемых утилитой. Количество знаков v
отображает уровень журналирования. Сообщения выводятся в стандартный вывод. Возможные значения:
-v
На этом уровне журналируется информация о нормальной работе утилиты без детализации, а также ошибки и предупреждения о потенциальных проблемах.
-vv[v...]
На этом уровне добавляется детальное журналирование информации о работе утилиты, которая может быть полезна для разработчиков при диагностике проблем.
--sign-ext
<ARG
>Расширение для файла внешней подписи KPA-пакета. Подробнее про внешнюю подпись KPA-пакета см. "Работа с KPA-пакетами".
--index-ext
<ARG
>Расширение для индексного файла KPA-пакета. Подробнее про индексный файл KPA-пакета см. "Работа с KPA-пакетами".
PACKAGES
>Список полных имен устанавливаемых KPA-пакетов в системе, где установлен SDK. Расширение файла указывать не нужно. Элементы списка разделяйте знаком пробела.
--version
Версия утилиты.
-h
|--help
Текст справки.
Примеры shell-команд для запуска утилиты cas-pm
:
# Переустановить пакет helloworld.kpa, расположенный в директории, заданной переменной ${PKG_DIR}.
# Пакет предварительно будет размещен в директории ${ROOTFS_DIR}/package перед записью в образ
# решения на базе KasperskyOS. Директория ${ROOTFS_DIR}/package находится в файловой системе,
# которая будет скопирована в образ решения. База данных repository.sqlite с информацией об
# установленных в образе пакетах будет расположена в директории, заданной переменной ${ROOTFS_DIR}.
# При установке ведется детальное журналирование выполняемых утилитой действий.
/opt/KasperskyOS-Community-Edition-<version>/toolchain/bin/cas-pm
--pkgsdir ${PKG_DIR}
--reinstall
-vvv
--dbpath ${ROOTFS_DIR}/repository.sqlite
--appsdir ${ROOTFS_DIR}/package
--rootdir ${ROOTFS_DIR}/package
--extension kpa
${PKG_DIR}/helloworld
В начало