工具

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. boostrap-非常好用但是容易让人忽略的地方【6】:role属性

    普通样式,鼠标hover没有任何效果 <span>content</span> 加上role属性的样式,鼠标hover会有cursor:pointer的效果 <span ...

  2. hibernate映射-继承映射

    对于面向对象的程序设计语言而言,继承和多态是两个最基本的概念.Hibernate的继承映射可以理解成持久化类之间的继承关系.例如:人和学生之间的关系.学生继承人,可以认为学生是一个特殊的人,如果对人进 ...

  3. 一键自动生成 java junit 测试代码神器 gen-test-plugin 入门介绍

    gen-test-plugin 我们日常编写代码的过程中,经常需要为代码编写测试案例. 随着对代码质量的要求越来越高,很多公司开始通过代码的测试覆盖率作为 QA 的一个评定指标. 本框架可以一键生成所 ...

  4. 聊聊最近撸Spring源码感悟

    一.前言     最近一段时间撸了Spring IOC.AOP.Transactional源码,这篇文章聊聊我写了哪些小玩意,这可能就是阅读源码以后最大收获.希望大家在里面能学习一些什么东西吧: 二. ...

  5. appium工作流程解析

    为什么选择appium ​ app自带测试框架,为什么要选择appium这个测试框架呢? Ios9.3以前使用的是UIAutomation,Ios9.3以后使用XCUITest.如果只使用Apple的 ...

  6. C# event 事件-2

    本次是对第一篇事件随笔的补充笔记,涉及题目依然使用上一篇的习题.上一篇地址:https://www.cnblogs.com/FavoriteMango/p/11685702.html 1.事件的定义 ...

  7. ssh保持连接不断开

    使用ssh连接服务器,长时间不使用,会自动断开,控制台会卡死无法使用,现提供以下两个方案解决这个问题: [服务器主动保持连接] 修改服务器配置文件: vim /etc/ssh/sshd_config ...

  8. 洛谷$1220$ 关路灯 记搜/$DP$

    \(Sol\) 约定\(pos\)为老张所处的位置的路灯号,\(i<pos,j>pos\). 显然,如果\(i\)和\(j\)都关了,那么它们之间的所有灯一定也都关了. 设\(f[i][j ...

  9. react项目使用antd

    在开始实践之前要确保搭建React单页面开发环境,如果还没有搭建好开发环境的朋友请移步到如何搭建React单页面开发环境. 首先在命令行模式下创建一个React项目(项目名使用小写字母命名):(win ...

  10. Scala:用于Java的轻量级函数式编程

    Scala为Java开发提供了轻量级的代码选项,但是学习过程可能会很艰难.了解有关Scala的知识以及是否值得采用. 基于Java的语言通常涉及冗长的语法和特定于领域的语言,用于测试,解析和数值计算过 ...