工具

Qt 安装器框架包含以下工具

installerbase

installerbase 工具描述的是核心安装程序本身。所有数据和相关元信息都将打包到此二进制文件中。在安装程序创建过程中,您不需要直接调用它。

binarycreator

使用 binarycreator 工具创建离线和在线安装程序。组件信息和数据会被添加到离线安装程序的二进制文件中,这使得文件提取和安装后脚本在没有互联网连接的情况下也能工作。

在线安装程序存储包含数据的仓库位置。启动时,它们加载组件信息,而不是数据。

您还可以创建混合安装程序,存储一些组件本地,并通过网络连接获取其他组件。有关更多信息,请参阅 减少安装程序大小

有关如何将数据集成到安装程序二进制文件中的信息,请参阅 QInstaller::BinaryContent

注意:如果您更改此配置,必须重新编译 installerbase 工具。

使用 binarycreator

您可以使用 binarycreator 工具创建离线和在线安装程序。某些选项具有默认值,因此可以省略它们。

要创建离线安装程序(在 Windows 上),输入以下命令

  • 在 Windows 上
    <location-of-ifw>\binarycreator.exe -t <location-of-ifw>\installerbase.exe -p <package_directory> -c <config_directory>\<config_file> <installer_name>
  • 在 Linux 和 macOS 上
    <location-of-ifw>/binarycreator -t <location-of-ifw>/installerbase -p <package_directory> -c <config_directory>/<config_file> <installer_name>

要创建仅在线安装程序,您可以使用 –online-only,这将定义所有要安装的软件包,从位于 Web 服务器上的在线仓库

  • 在 Windows 上
    <location-of-ifw>\binarycreator.exe -t <location-of-ifw>\installerbase.exe -p <package_directory> -c <config_directory>\<config_file> -e <packages> <installer_name>
  • 在 Linux 和 macOS 上
    <location-of-ifw>/binarycreator -t <location-of-ifw>/installerbase -p <package_directory> -c <config_directory>/<config_file> -e <packages> <installer_name>

binarycreator 参数汇总

binarycreator 工具接受以下参数

参数用途
-t 或 –template file使用 file 作为安装程序模板二进制文件,其中将附加组件信息。如果您省略此参数,则使用 installerbase 模板。
-p 或 –packages directory使用 directory 作为软件包目录。默认为当前工作目录。
–repository directory使用 directory 作为包含软件包的仓库目录以进行重新打包。此条目可以多次给出。
-n 或 –online-only在不将任何组件添加到安装程序二进制文件的情况下编译。
-f 或 –offline-only创建永不访问在线仓库的离线安装程序。
-c 或 –config file使用 file 作为配置文件
-e 或 –exclude p1,...,pn逗号分隔的包列表,从在线仓库检索。这些包不包括在安装程序二进制文件中。
-i 或 –include p1,...,pn逗号分隔的软件包列表,从安装程序二进制文件中检索。您不能组合或合并 --include--exclude
-r 或 –resources逗号分隔的资源列表,包含在安装程序二进制文件中。
–ignore-translations禁用翻译文件的用法以加快测试进程。
–ignore-invalid-packages忽略没有有效元数据信息(package.xml)的组件或组件目录,以提高测试效率。
–ignore-invalid-repositories忽略没有有效元数据信息(Updates.xml)的仓库目录,而不是中断。
-v 或 –verbose显示调试输出。
-s 或 –sign identity仅适用于 macOS。允许指定用于签名生成的应用程序包的代码签名标识。
–af 或 –archive-format 7z|zip|tar|tar.gz|tar.bz2|tar.xz设置打包新组件数据存档时使用的格式。如果您省略此选项,默认使用 7z 格式。

注意: 如果 Installer Framework 工具没有构建 libarchive 支持,则仅支持 7z 格式。

–ac 或 –compression <5>默认为 5(标准压缩)。

注意: 某些格式不支持所有可能的值,例如 bzip2 压缩只能支持从 1 到 9 的值。

  • 0(无压缩)
  • 1(最快压缩)
  • 3(较快压缩)
  • 5(标准压缩)
  • 7(最大压缩)
  • 9(超压缩)

这些参数之后跟目标二进制文件名称和要安装的包列表。

注意: 列出的包将包含在安装程序中,以及它们的所有依赖项以及与相同前缀共享的包,除非您指定 --nodeps 参数。

在通过 --resources 参数指定的可选资源文件中,可以使用特殊的 fonts/ 路径来分发自定义字体。这些字体将自动加载,因此可以在通过 StyleSheet 变量指定的样式表中访问。

在 Windows 上,如果未指定扩展名,则目标二进制文件名称自动扩展为 .exe。在 Mac 上,目标作为应用程序包创建,扩展名为 .app,如果未提供,会自动添加。此外,您可以指定 .dmg 扩展名,这将创建一个包含 .app 包的 DMG 磁盘映像。

使用图标

在 macOS 上,如果目标二进制文件的扩展名为 .app,则创建一个 macOS 应用程序包。在 config.xml 中指定的图标扩展为 .icns,并用作创建的包的图标。

在 Windows 上,在 config.xml 中指定的图标扩展为 .ico,并用作 .exe 文件的程序图标。

在 Linux 上,在 config.xml 中指定的图标扩展为 .png,并用作窗口图标。

repogen

使用 repogen 工具来生成在线仓库。

repogen 工具期望以下参数按照以下顺序

repogen.exe -p <package_directory> <repository_directory>

当创建了存储库后,您可以将其上传到任何地方。创建它的安装程序时,您必须指定配置文件中的位置。

存储库包含压缩的元数据,可以为每个组件创建独立的 7z 存档,或者合并为单一 7z 存档。默认情况下,repogen 同时以这两种格式打包元数据,以与不支持统一元数据格式的旧安装程序保持向后兼容。这可以通过 --unite-metadata--component-metadata 选项进行更改。

您可以使用现有的存储库重新打包软件包到另一个存储库或离线安装程序。

repogen 参数摘要

参数用途
-p 或 –packages directorydirectory 作为 包目录。这是强制性的。
–repository directory使用目录作为仓库目录,其中包含需要重新打包的软件包(不要与强制性的目标仓库目录混淆)。此条目可以重复多次。
仓库目录仓库的目标目录。在初始安装期间,该目录必须尚不存在。在更新时,目录可能存在,其内容可能被覆盖或删除。此项是强制性的。
-e 或 –exclude p1,...,pn从包目录中所有包的集合中忽略的包的逗号分隔列表。
-i 或 –include p1,...,pn从包目录中所有包的集合中使用的包的逗号分隔列表。
–update更新包目录中的所有包。可以使用-i-e参数进一步筛选列表。
–update-new-components仅更新新组件或具有更新版本的组件。可以使用-i-e参数进一步筛选列表。
-r 或 –remove在重新生成之前强制删除现有的目标目录。
-v 或 –verbose显示调试输出。
–unite-metadata将所有元数据合并到一个7z文件中。这加快了元数据下载阶段。
–component-metadata为每个组件创建一个元数据7z文件。
-s 或 –sha-update p1,...,pn基于组件sha校验和更新而不是版本号的逗号分隔列表的包。此参数将添加一个新的<ContentSha1>节点到Updates.xml
–af 或 –archive-format 7z|zip|tar|tar.gz|tar.bz2|tar.xz设置打包新组件数据存档时使用的格式。如果您省略此选项,默认使用 7z 格式。

注意: 如果 Installer Framework 工具没有构建 libarchive 支持,则仅支持 7z 格式。

–ac, –compression <5>默认为 5(标准压缩)。

注意: 某些格式不支持所有可能的值,例如 bzip2 压缩只能支持从 1 到 9 的值。

  • 0(无压缩)
  • 1(最快压缩)
  • 3(较快压缩)
  • 5(标准压缩)
  • 7(最大压缩)
  • 9(超压缩)

注意:我们建议您使用--update-new-packages参数来更新现有仓库,尤其是如果您有内容分发系统。这有助于您避免更新未更改的组件,并且使得内容分发系统仅分发新文件变得更加容易,因为只有更新的组件分配了新的SHA校验和。

archivegen

您可以使用archivegen将文件和目录打包到存档中。

archivegen工具期望以下顺序的参数

archivegen <archive_name> <data>

其中<archive_name>是要创建的存档的路径和文件名,而<data>包含要打包到存档中的文件或目录的路径和名称,用空格分隔。

archivegen参数总结

参数用途
-h, –help显示此帮助。
-v, –version显示版本信息。
-f, –format <format>存档的格式。默认为7z。

注意: 如果 Installer Framework 工具没有构建 libarchive 支持,则仅支持 7z 格式。

  • 7z (7z存档)
  • zip (ZIP存档)
  • tar (未压缩的tar存档)
  • tar.gz (gzip压缩的tar存档)
  • tar.bz2 (bzip2压缩的tar存档)
  • tar.xz (xz压缩的tar存档)
-c, –compression <5>默认为 5(标准压缩)。

注意: 某些格式不支持所有可能的值,例如 bzip2 压缩只能支持从 1 到 9 的值。

  • 0(无压缩)
  • 1(最快压缩)
  • 3(较快压缩)
  • 5(标准压缩)
  • 7(最大压缩)
  • 9(超压缩)

devtool

您可以使用devtool用新的安装程序基础更新现有的安装程序或维护工具,将安装程序或维护工具的二进制内容转储到目标,并执行操作。操作总结见Operations

devtool期望以下顺序的参数

devtool [options] binary

其中binary是现有安装程序或维护工具的路径和名称。

devtool参数总结

参数用途
-?, -h, –help显示帮助。
-v, –version显示版本信息。
–verbose显示额外信息。
update <binary> <installerbase>使用新的安装程序基础更新现有的安装程序或维护工具。
dump <binary> <folder>将属于安装程序或维护工具的二进制内容转储到目标。
operation <mode,name,args,...>使用参数列表执行操作。

模式可以是 执行撤销,具体取决于步骤是否包含安装程序或卸载程序的指令。

©2021 Qt公司版权所有。包含在此处的文档贡献是该所有者的版权。所提供的文档按照由自由软件基金会发布的 GNU自由文档许可证版本1.3 的条款进行许可。Qt公司和Qt及其相应标志是芬兰和/或其他国家/地区的Qt公司商标。所有其他商标均为各自所有者的财产。