工具

Qt Installer Framework包含以下工具:

> installerbase

> binarycreator

> repogen

> archivegen

> devtool

installerbase

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

binarycreator

使用binarycreator工具创建离线和在线安装程序。 组件信息和数据将附加到离线安装程序二进制文件中,从而使文件提取和安装脚本无需Internet连接即可工作。

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

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

有关如何将数据集成到安装程序二进制文件中的信息,请参见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 and 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 and 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 or --template file将file用作附加了组件信息的安装程序模板二进制文件。 如果省略此参数,则使用installerbase模板。
-p or --packages directory使用directory作为包文件夹。 默认为当前工作目录。
--repository directory将directory用作包含要重新打包的包的存储库目录。可以多次输入该条目。
-n or --online-only编译没有任何组件的安装程序二进制包。
-f or --offline-only创建永远不访问在线存储库的离线安装程序。
-c or --config file把file作为配置文件。
-e or --exclude p1,...,pn逗号分隔的包列表,从联机存储库检索。这些包不包含在安装程序二进制文件中。
-i or --include p1,...,pn逗号分隔的包列表,从安装程序二进制文件中检索。您不能联合或合并使用--include和--exclude。
-r or --resources以逗号分隔的资源列表,包含在安装程序二进制文件中。
--ignore-translations禁用翻译文件以加快测试速度。
--ignore-invalid-packages忽略没有有效元数据信息(package.xml)的组件或包目录,以加快测试速度。
--ignore-invalid-repositories忽略没有有效元数据信息(Updates.xml)的存储库目录,而不是中止。
-v or --verbose显示调试输出。
-s or --sign identity仅在macOS上可用。 允许指定代码签名身份,用于对生成的应用程序包进行签名。

这些参数后跟目标二进制文件的名称以及可用于安装的包列表。

注意:除非您指定--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>

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

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

repogen参数总结

-p or --packages directory使用directory作为包文件夹。 这是强制性的。
--repository directory将directory用作包含要重新打包的包的存储库目录(不要与强制性目标存储库目录混淆)。 可以多次输入该条目。
repository directory目标文件夹,用于存储库。 在初始安装期间,该目录必须尚未存在。 更新时,该目录可能存在,并且其内容可能会被覆盖或删除。 这是强制性的。
-e or --exclude p1,...,pn逗号分隔的包列表,将从包目录中所有包的集合中忽略。
-i or --include p1,...,pn逗号分隔的包列表,将从包目录中所有包的集合中选择并使用。
--update更新packages目录中的所有包。 可以使用-i,-e参数进一步过滤该列表。
--update-new-components仅更新新组件或具有较新版本的组件。 可以使用-i,-e参数进一步过滤该列表。
-r or --remove强制删除现有目标目录,然后再次生成它。
-v or --verbose显示调试输出。

注意:我们建议您使用--update-new-components(原文为--update-new-packages,我认为是错误的)参数来更新现有存储库,尤其是在具有内容交付系统的情况下。 这可以帮助您避免更新未更改的组件,并且使内容交付系统更轻松地仅分发新文件,因为仅为已更新的组件分配了新的SHA校验和。

archivegen

您可以使用archivegen将文件和目录打包到7zip(.7z)存档中。

archivegen工具希望以下参数具有如下顺序:

archivegen <name.7z> <data>

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

devtool

您可以使用devtool,来通过新的installer base更新现有的安装程序或维护工具,将二进制内容从安装程序或维护工具转储到目标,并执行操作。 有关可用操作的总结,请参见操作章节。

devtool工具希望以下参数具有如下顺序:

devtool [options] binary

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

devtool参数总结

-?, -h, --help显示帮助。
-v, --version显示版本信息。
--verbose显示附加信息。
--update 使用新的installer base来更新现有安装程序或维护工具。
--dump 将属于安装程序或维护工具的二进制内容转储到目标中。
--operation <mode,name,args,...>执行带有参数列表的操作。
模式可以是DO或UNDO,具体取决于该步骤是否包含安装程序或卸载程序的说明。

原创造福大家,共享改变世界

献出一片爱心,温暖作者心灵

Qt Installer Framework翻译(7-6)-LMLPHP


05-11 22:34