工具

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)的更多相关文章

  1. Qt Installer Framework翻译(5-4)

    自定义安装程序 您可以使用脚本通过以下方式来自定义安装程序: > 添加Qt Installer Framework操作,该操作由脚本提供,并由安装程序执行. > 添加新页面,该页面由您在p ...

  2. Qt Installer Framework翻译(3-1)

    初始化安装 下图说明了安装应用程序的默认工作流程: 本节使用在macOS上运行的Your Application Installer示例来说明默认工作流程.安装程序具有本地化外观,并可感知每个受支持的 ...

  3. Qt Installer Framework翻译(1)

    IFW概览 Qt Installer Framework 提供了一组工具和程序来创建安装程序,并在不重写源代码的情况下将它们部署到所有受支持的桌面 Qt 平台上.安装程序具有本地化外观,并且可以感知运 ...

  4. Qt Installer Framework翻译(4)

    教程:创建安装程序 本教程描述如何为一个小项目创建一个简单的安装程序: 本节描述创建安装程序所必须完成的步骤: 创建一个包文件夹,其中将包含所有配置文件和可安装的包. 创建一个配置文件,其中包含有关如 ...

  5. Qt Installer Framework翻译(7-4)

    组件脚本 对于每个组件,您可以指定一个脚本,来准备要由安装程序执行的操作.脚本格式必须与QJSEngine兼容. 构造 脚本必须包含安装程序在加载脚本时创建的Component对象. 因此,脚本必须至 ...

  6. Qt Installer Framework翻译(7-8)

    C++ API C ++ API文档是为开发Qt Installer Framework的开发人员编写的. 它描述了内部API,因此没有兼容性保证. 此外,该文档尚在开发中,因此缺少部分内容,而其他部 ...

  7. Qt Installer Framework翻译(0)

    本人主攻C++和Qt. 以前一直看人家的博客,找资料学习.今天我也终于开博客啦. 最近在研究Qt install framework(IFW)应用程序安装框架. google也没发现有正儿八经的官方文 ...

  8. Qt Installer Framework翻译(7-2)

    包文件夹 安装程序包含的组件,要么是内嵌的,要么可以从远程存储库加载.在这两种情况下,都需要为组件使用一种安装程序可以读取的文件格式和结构. 包文件夹结构 将所有组件放在相同的根文件夹中,即包文件夹. ...

  9. Qt Installer Framework翻译(7-3)

    控制脚本 对于每个安装程序,您可以指定一个控制脚本,用来与安装程序的部分UI或功能进行交互.控制脚本可以在向导中添加和删除页面,更改现有页面,进行附加检查以及通过模拟用户单击来与UI交互.例如,这允许 ...

随机推荐

  1. CDM命令实现MySql数据库文件的导出导入

    1.首先进入MySQL的安装目录,找到Bin文件夹,我这里安装的目录是C:\Program Files\MySQL\MySQL Server 8.0\bin ,进入该文件夹后在空白处按下Shift键+ ...

  2. codeforces 86D,Powerful array 莫队

    传送门:https://codeforces.com/contest/86/problem/D 题意: 给你n个数,m次询问,每次询问问你在区间l,r内每个数字出现的次数的平方于当前这个数的乘积的和 ...

  3. 复盘:错误理解zuul路径匹配,无法使用zuul

    场景: 项目中用到zuul时,配置url总是有问题,无法路由到对应微服务. 配置如下: zuul: routes: m2-member: path: /member/* serviceId: m2-m ...

  4. spring boot 实践总结(转)

    pring Boot是最流行的用于开发微服务的Java框架.在本文主要分享的是在专业开发中使用Spring Boot所采用的最佳实践.这些内容是基于个人经验和一些熟知的Spring Boot专家的文章 ...

  5. Python之eval和exec

    eval可以执行字符串形式的表达式 In [1]: eval("1 + 2 + 3") Out[1]: 6 In [2]: eval("a + 1", {&qu ...

  6. 爬虫 -- JS调试

    开发者工具(F12) 其中常用的有Elements(元素面板).Console(控制台面板).Sources(源代码面板).Network(网络面板) 找 JS 文件的几种方法 1.找发起地址 2.设 ...

  7. ResponsibilityChainPattern(责任链模式)-----Java/.Net

    职责链模式(称责任链模式)将请求的处理对象像一条长链一般组合起来,形成一条对象链.请求并不知道具体执行请求的对象是哪一个,这样就实现了请求与处理对象之间的解耦

  8. 【TCP/IP网络编程】:09套接字的多种可选项

    本篇文章主要介绍了套接字的几个常用配置选项,包括SO_SNDBUF & SO_RCVBUF.SO_REUSEADDR及TCP_NODELAY等. 套接字可选项和I/O缓冲大小 前文关于套接字的 ...

  9. Maven 生命周期的概念(指令默认顺序执行)

    生命周期的概念 IDEA中使用maven构建项目都集中放到了窗口右侧"Maven Projects"中,点击该区域可以直观的看到,maven中几个常用指令都归类为LifeCycle ...

  10. Ural1057. Amount of Degrees 题解 数位DP

    题目链接: (请自行百度进Ural然后查看题号为1057的那道题目囧~) 题目大意: Create a code to determine the amount of integers, lying ...