包安装程序

动态安装、更新和删除软件包

使用appman-packager工具对应用程序进行打包后,可以在运行时由应用程序管理器进行安装。此功能有两个接口

  • 一个用于应用程序管理器进程内的 QML 接口
  • 一个用于任何可以与应用程序管理器的 PackageManager 接口通信的进程的 D-Bus 接口。

这两个接口非常相似,并在 PackageManager 中进行了描述。

注意:动态安装应用程序包的先决条件是应用程序管理器的有效 installationDir 配置

软件包

应用程序管理器有自己的包格式。它附带appman-packager命令行工具,您可以使用该工具创建和验证这些软件包。

安装源

在触发软件包安装时,您必须提供用于软件包来源的应用程序管理器的 URL。默认情况下,应用程序管理器接受以下方案

方案描述
file://本地文件系统路径。
http://https://ftp://通过 QNetworkAccessManager 下载的远程路径。
socket://指向本地文件系统中 UNIX 域套接字的路径。如果您不想使用内置的下载器或您的软件包封装在其他特定客户的应用程序分发文件格式中,则此功能非常有用。

上述所有方法都支持异步操作并支持流式传输:这意味着实际的安装是在下载软件包的同时进行的。如果下载后软件包验证成功,则只需快速完成最终步骤。否则,如果发生错误,安装过程将简单取消并回滚。

公钥基础设施

要使用签名软件包,您需要公钥基础设施 (PKI) 支持此操作,这意味着您需要两个证书权威机构 (CA)

  • 一个 开发者 CA:负责创建以 P12 格式分发给开发者的证书。开发者使用这些证书在提交到应用商店之前使用 Packager 对他们的软件包进行开发者签名。
  • 一个 应用商店 CA:负责在下载并安装到设备之前存储签名软件包,供应用商店服务器后端使用。

这两个 CA 可以相同,或者可以从一个共同的根 CA 派生。

对于设备,您需要安装一个或两个这些 CA 证书,包括任何根或中间证书。但这取决于您想要用户安装的软件包类型。需要加载哪个 CA 证书在 配置文件 中指定。

应用程序管理器来源有一个脚本 tests/data/certificates/create-test-certificates.sh,该脚本为内部单元测试设置此类 PKI。此脚本 用于生产,仅供在开发具有签名软件包时使用。

©2019 瑞典Luxoft AB。本文档内的贡献文档享有各自所有者的版权。提供的文档根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款进行许可。Qt及其标志是芬兰Qt公司及其在世界其他地区的商标。所有其他商标均为其各自所有者的财产。