Qt Installer Framework翻译(5-2)
创建在线安装程序
联机安装程序获取二进制安装文件中的内容以及存储库描述(Updates.xml)。请创建一个存储库,并将其上传到Web服务器。然后在用于创建安装程序的config.xml文件中指定存储库的位置。
创建存储库
使用repogen工具创建一个package文件夹中所有包的在线存储库:
repogen.exe -p <package_directory> <repository_directory>
例如,要创建仅包含org.qt-project.sdk.qt和org.qt-project.sdk.qtcreator的存储库,请输入以下命令:
repogen.exe -p packages -i org.qt-project.sdk.qt,org.qt-project.sdk.qtcreator repository
存储库创建后,将其上传到Web服务器。您必须在安装程序配置文件中指定存储库的位置。
配置存储库
安装程序配置文件(config.xml)中的<RemoteRepositories>元素可以包含多个存储库的列表。每个存储库都可以有以下设置:
<Url>,它指向可用组件的列表。
<Enabled>,值为0表示禁用此存储库。
<Username>,受保护存储库上使用的用户名。
<Password>,受保护存储库上使用的密码。
<DisplayName>,可选项,使用字符串来代替URL。
URL需要指向列出可用组件的Updates.xml文件。例如:
<RemoteRepositories>
<Repository>
<Url>http://www.example.com/packages</Url>
<Enabled>1</Enabled>
<Username>user</Username>
<Password>password</Password>
<DisplayName>Example repository</DisplayName>
</Repository>
</RemoteRepositories>
仅当安装程序可以访问存储库时,才能正常工作。如果在安装后访问存储库,则维护工具将拒绝安装。但是,仍然可以卸载。默认情况下,可以启用或禁用存储库。对于需要身份验证的存储库,也可以在此处设置详细信息,尽管不建议在此处输入密码,因为它以明文形式保存。如果此处不设置身份验证用的信息,那么会在运行时以对话框的形式要求输入。用户可以在运行时解决这些设置。
配置存储库类别
安装程序配置文件(config.xml)中的元素可以包含多个元素的列表。 元素内的每个元素都被视为一个类别。每个类别都可以具有,,元素和一些元素。存储库类别显示在组件选择页面的左侧,作为一个组件组件选择部件:
默认情况下,组件选择部件中仅显示没有类别的存储库。检查一个或几个存储库,并点击Fetch按钮,将更新部件,以显示来自所选类别存储库的内容。存储库类别中的组件被标记为不稳定(unstable),这意味着您可以安装其他组件,尽管某些组件缺少依赖项,或者脚本错误等。有关不稳定组件的更多信息,请参阅配置文件元素总结章节。
创建存储库类别的示例:
<RepositoryCategories>
<RemoteRepositories>
<Displayname>Category 1</Displayname>
<Preselected>true</Preselected>
<Tooltip>Tooltip for category 1</Tooltip>
<Repository>
<Url>http://www.example.com/packages</Url>
<Enabled>1</Enabled>
<Username>user</Username>
<Password>password</Password>
<DisplayName>Example repository</DisplayName>
</Repository>
</RemoteRepositories>
</RepositoryCategories>
创建安装程序二进制文件
要使用binarycreator工具创建在线安装程序,请输入以下命令:
<location-of-ifw>\binarycreator.exe -t <location-of-ifw>\installerbase.exe -p <package_directory> -c <config_directory>\<config_file> -e <packages> <installer_name>
例如,输入以下命令以创建名为SDKInstaller.exe的安装程序二进制文件,该文件将不包含org.qt-project.sdk.qt和org.qt-project.qtcreator,因为这些包是从远程存储库下载的:
binarycreator.exe -p installer-packages -c installer-config\config.xml -e org.qt-project.sdk.qt,org.qt-project.qtcreator SDKInstaller.exe
减少安装程序大小
即使是从Web服务器获取组件,默认情况下,binarycreator也将它们添加到安装程序二进制文件中。但是,当安装程序检查Web服务器上的更新时,如果没有新版本可用,则用户无需下载。
或者,您可以创建一个不包含任何数据的在线安装程序,全部从Web服务器获取。使用binarycreator工具的-n参数,则仅添加根组件。通常根组件为空,因此仅添加根的XML描述。
有关所拥有选项的更多信息,请参见binarycreator参数总结章节。
原创造福大家,共享改变世界
献出一片爱心,温暖作者心灵
Qt Installer Framework翻译(5-2)的更多相关文章
- Qt Installer Framework翻译(5-4)
自定义安装程序 您可以使用脚本通过以下方式来自定义安装程序: > 添加Qt Installer Framework操作,该操作由脚本提供,并由安装程序执行. > 添加新页面,该页面由您在p ...
- Qt Installer Framework翻译(7-6)
工具 Qt Installer Framework包含以下工具: > installerbase > binarycreator > repogen > archivegen ...
- 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交互.例如,这允许 ...
随机推荐
- gulp4.0基本配置,超简单!
最近复习了一下gulp,目前是4.0版本. 下图是基本目录结构,文件里面的内容可以随意添加,超详细简洁啊! 直接上代码(依赖未完全使用): 项目的所有依赖都可以安装,每个都有详细的注释. const ...
- records
2019年数据地址备份: three.js 实例在NextWebProject/static/canvas下边! qlgj 在NextWebProject下边!
- <Codeforce>1082A. Vasya and Book
题目描述: Vasya is reading a e-book. The file of the book consists of nn pages, numbered from 11 to nn. ...
- 2019牛客多校第一场 I Points Division(动态规划+线段树)
2019牛客多校第一场 I Points Division(动态规划+线段树) 传送门:https://ac.nowcoder.com/acm/contest/881/I 题意: 给你n个点,每个点有 ...
- MBean 描述符
简介 Tomcat 使用 JMX MBean 来实现自身的性能管理. 每个包里的 mbeans-descriptor.xml 是针对 Catalina 的 JMX MBean 描述. 为了避免出现 “ ...
- python监控模块
pip install psutil 获取内存信息: >>> import psutil >>> mem = psutil.virtual_memory() #获取 ...
- window10 自带虚拟机输入ip addr 不显示ip,显示字母加数字
\(\color{Black}{文/魂皓轩}\) 1.在界面输入ip addr 2.通过ls 查看当前文件 我的虚拟机网络配置文件为ifcfg-eth0(不同主机文件名不一样) 3.通过 vi ifc ...
- Curator实现zookeeper分布式锁的基本原理
一.写在前面 之前写过一篇文章(<拜托,面试请不要再问我Redis分布式锁的实现原理>),给大家说了一下Redisson这个开源框架是如何实现Redis分布式锁原理的,这篇文章再给大家聊一 ...
- The third day of Crawler learning
连续爬取多页数据 分析每一页url的关联找出联系 例如虎扑 第一页:https://voice.hupu.com/nba/1 第二页:https://voice.hupu.com/nba/2 第三页: ...
- cocos2dx Geometry Size和Rect
Size 代码都是基础代码不注释了,写一些特别的 1.赋值时可以接收Size和Vec2类型的值,保证的类型的兼容性 2.对运算符进行了重载,可以按照正常的数学逻辑运算 3..可以使用equals对比大 ...