软件包安装

动态安装、更新和卸载软件包

在应用程序通过 appman-packager 工具打包后,应用程序管理器将在运行时安装它们。此功能有两个接口

  • 一个用于应用程序管理器进程内的 QML 接口。
  • 一个 D-Bus 接口,供任何允许与应用程序管理器 PackageManager 接口通信的进程使用。

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

注意:动态安装应用程序软件包的前提是应用程序管理器有一个有效的 installationDir 配置

软件包

应用程序管理器有自己的 软件包格式。它包含 appman-packager 命令行工具,用于创建和验证这些软件包。

安装来源

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

方案说明
file://本地文件系统路径。
http://https://ftp://通过 QNetworkAccessManager 下载的远程路径。
socket://指向本地文件系统中的 UNIX 域套接字的路径。如果您不想(或不能)使用内置的下载程序,或者如果软件包包含在其他客户特定分发文件格式中,则这在流式传输软件包时非常有用。

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

公共密钥基础设施

要使用签名软件包,您需要一个支持此功能的公共密钥基础设施 (PKI),这意味着您需要两个证书授权机构 (CA)

  • 开发人员 CA:负责创建以 P12 格式分发给开发人员的证书。开发人员使用这些证书来使用 打包器 开发签名他们的软件包,然后提交给应用商店。
  • 应用商店CA:负责为应用商店服务器后端生成证书,用于存储签名包,在它们被下载和安装到设备之前。

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

对于设备,您需要安装这些CA证书中的一个或两个,包括任何根或中间证书。但,这取决于您希望用户能够安装的包类型。通过配置文件指定要加载的CA证书,文件路径为 配置文件

应用程序管理器的源代码中有一个脚本 tests/data/certificates/create-test-certificates.sh,用于为内部单元测试设置这样的PKI。此脚本用于生产,仅用于与签名包一起开发。

© 2024 The Qt Company Ltd. 此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会(Free Software Foundation)发布的GNU自由文档许可1.3版的条款许可的。Qt和相应的标志是芬兰和/或其他国家的The Qt Company Ltd.的商标。所有其他商标均为其各自所有者的财产。