Qt Installer Framework翻译(7-6)
工具
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)的更多相关文章
- Qt Installer Framework翻译(5-4)
自定义安装程序 您可以使用脚本通过以下方式来自定义安装程序: > 添加Qt Installer Framework操作,该操作由脚本提供,并由安装程序执行. > 添加新页面,该页面由您在p ...
- Qt Installer Framework翻译(3-1)
初始化安装 下图说明了安装应用程序的默认工作流程: 本节使用在macOS上运行的Your Application Installer示例来说明默认工作流程.安装程序具有本地化外观,并可感知每个受支持的 ...
- Qt Installer Framework翻译(1)
IFW概览 Qt Installer Framework 提供了一组工具和程序来创建安装程序,并在不重写源代码的情况下将它们部署到所有受支持的桌面 Qt 平台上.安装程序具有本地化外观,并且可以感知运 ...
- Qt Installer Framework翻译(4)
教程:创建安装程序 本教程描述如何为一个小项目创建一个简单的安装程序: 本节描述创建安装程序所必须完成的步骤: 创建一个包文件夹,其中将包含所有配置文件和可安装的包. 创建一个配置文件,其中包含有关如 ...
- Qt Installer Framework翻译(7-4)
组件脚本 对于每个组件,您可以指定一个脚本,来准备要由安装程序执行的操作.脚本格式必须与QJSEngine兼容. 构造 脚本必须包含安装程序在加载脚本时创建的Component对象. 因此,脚本必须至 ...
- Qt Installer Framework翻译(7-8)
C++ API C ++ API文档是为开发Qt Installer Framework的开发人员编写的. 它描述了内部API,因此没有兼容性保证. 此外,该文档尚在开发中,因此缺少部分内容,而其他部 ...
- Qt Installer Framework翻译(0)
本人主攻C++和Qt. 以前一直看人家的博客,找资料学习.今天我也终于开博客啦. 最近在研究Qt install framework(IFW)应用程序安装框架. google也没发现有正儿八经的官方文 ...
- Qt Installer Framework翻译(7-2)
包文件夹 安装程序包含的组件,要么是内嵌的,要么可以从远程存储库加载.在这两种情况下,都需要为组件使用一种安装程序可以读取的文件格式和结构. 包文件夹结构 将所有组件放在相同的根文件夹中,即包文件夹. ...
- Qt Installer Framework翻译(7-3)
控制脚本 对于每个安装程序,您可以指定一个控制脚本,用来与安装程序的部分UI或功能进行交互.控制脚本可以在向导中添加和删除页面,更改现有页面,进行附加检查以及通过模拟用户单击来与UI交互.例如,这允许 ...
随机推荐
- UI 素材相关收集
图标素材收藏网址 阿里:iconfont.cn 图片压缩:https://tinypng.com/ gif动图压缩:https://tool.gifhome.com
- jQuery的使用及关于框架造型 专题
Introduction 正如jQuery所宣称的一样,Write Less, Do More.很多时候我们喜欢用它来解决问题.但增加一个库必然意味着更大的网络负担,意味着更高的页面初始载入时间.并且 ...
- 数据多js平均时间取固定条数展示,echarts数据多处理数据
js代码: function getfailurerate(start,end,ip) { $.ajax( { url : "report/getvirtual.action", ...
- MindManager使用技巧
任务窗格在右下角. 1.条件的设置与编辑 2.优先级视图 不是优先级图标 3.圆圈图 4.洋葱图的使用 右键选择背景再选择解锁所有背景就可以对所有圆形进行调整了 点图形边缘出现十字架可以进行移动 5 ...
- springboot 动态修改定时任务
1.静态定时 1)启动类加上注解@EnableScheduling @EnableAsync @EnableScheduling @SpringBootApplication @MapperScan( ...
- 三句话说清楚ssh端口转发
看了下自己以前的笔记发现也没有完全搞清楚, 网上好多文章都是抄来抄去,远程端口转发全都是拿127.0.0.1举例 总结了下,三句话就可以讲清楚了 1 ssh本地端口转发是 把ssh服务器可以访问到 ...
- mysqldump主从复制
一,主从复制条件 1,开启binlog功能2,主库建立同步账号3,从库配置master.info(change mast..)4,start slave复制开关知识点:####1, 3个线程,主库i ...
- 洛谷$P2053\ [SCOI2007]$修车 网络流
正解:网络流 解题报告: 传送门$QwQ$ 一个很妙的建图,,,说实话我麻油想到$QwQ$ 考虑对每个工人建$n$个点,表示这是他修的倒数第$i$辆车,就可以算出影响是$t\cdot i$,然后对每辆 ...
- win10开启我的第一个32位汇编程序
遥想当年,上学期间,汇编程序,从未成功.今又试之,终成功,遂记录. Hello.asm文件如下: . .model flat,stdcall option casemap:none include w ...
- python3 三行代码基于HTTP2完美实现APNS推送【详解】
第一次做苹果APNS(Apple Push Notification service)推送,关于APNS推送原理以及证书的获取方式网上已经有许多资料,在此不做过多赘述,需要注意的是证书分为测试证书和正 ...