Qt Installer Framework 使用说明(一)
Qt Installer Framework 使用说明
这份教程是去年翻译的,有很多不准确或不正确的地方,请别介意。
原文链接 [http://doc.qt.io/qtinstallerframework/index.html](http://doc.qt.io/
qtinstallerframework/index.html)
以下offline翻译为离线,online翻译为联机。widgets翻译为小部件。
版本 2.0.3
The Qt Installer Framework提供了一套工具和实用程序用于创建桌面Qt安装程序。支持的平台有: Linux, Microsoft
Windows, 和 OS X.
注意: 对于Qt Installer Framework中遇到的bug和错误可以通过Qt
Bugtracker(Qt错误追踪)进行反馈。
1、Qt Installer Framework概述
Qt安装程序框架提供了一组工具和实用程序,只需创建安装程序一次,无需改动源码,即可将它们部署在所有支持桌面QT的平台。 安装程序将在运行它们的平台上具有原生外观和感觉,支持:Linux,Microsoft Windows和OS X.
Qt安装程序框架工具生成安装程序,其中包含一组在安装,更新或卸载过程中指导用户的页面。 您提供可安装的内容并指定有关它的信息,例如产品和安装程序的名称以及许可协议的文本。
您可以通过向预定义的页面添加窗口小部件或添加整个页面来为用户提供其他选项来自定义安装程序。 您可以创建脚本以向安装程序添加操作。
选择安装包类型
你可以为最终用户提供一个离线(offline)
或联机(online)
安装包,或者同时支持。具体取决于您的使用情况。
两个安装程序都安装了一个维护工具(maintenance tool)
,以后可用于添加,更新和删除组件。 离线安装程序包含所有可安装的组件,并且在安装期间 不需要网络连接 。 联机安装程序仅安装维护工具,然后从Web服务器上的联机存储库下载和安装组件。 因此,在线安装程序二进制文件的大小较小,其下载时间比离线安装程序二进制文件的大。 如果最终用户没有安装所有可用的组件,则下载和运行联机安装程序所花费的总时间也可能短于下载和运行离线安装程序。
最终用户可以在初次安装
后使用维护工具
从 服务器安装其他组件 ,以及在服务器上发布更新后立即接收内容的自动更新。 但是,只有在离线安装程序配置中指定存储库地址
或最终用户在维护工具设置中指定存储库地址时,这才适用于离线安装。
创建离线安装程序以便用户可以直接下载安装软件包在介质上,稍后在计算机上进行安装。 例如,您还可以将安装软件包分发到CD-ROM或USB盘。
创建联机安装程序以使用户始终安装最新版本的内容二进制文件。
促进更新
使在线存储库可用于向安装产品的最终用户推广更新。 提供更新的最简单方法是重新创建存储库并将其上传到Web服务器。 对于大型存储库,只能更新已更改的组件。
提供安装内容
您可以启用其他内容提供程序将组件作为附加组件添加到安装程序。 组件提供程序必须设置包含可安装组件的存储库,并将指向存储库的URL提供给最终用户。 最终用户必须在安装程序中配置URL。 该附加组件在包管理器中可见。
2、入门指南
Qt安装程序框架是作为Qt项目的一部分开发的。 框架本身使用Qt。 但是,它可以用于创建安装所有类型应用程序的安装程序,包括(但不限于)使用Qt构建的应用程序。
支持的平台
您可以使用Qt Installer Framework为桌面Qt支持的所有平台创建安装程序。
安装程序已在以下平台上测试:
- Microsoft Windows XP及更高版本
- Ubuntu Linux 11.10及更高版本
- OS X 10.7及更高版本
从源代码构建
以下步骤描述如何自己构建Qt Installer Framework。 如果已下载框架的预构建(编译)版本,则可以跳过此步骤。
最新的2.0.3 64位linux安装包下载地址http://download.qt.io/official_releases/qt-installer-framework/2.0.3/QtInstallerFramework-linux-x64.run
支持的编译器
Qt安装程序框架可以使用Microsoft Visual Studio 2013、GCC 4.7、Clang 3.1及其更高版本进行编译。
配置Qt
如果使用静态构建Qt来构建Qt安装程序框架,则不必提供Qt库,这使您可以将安装程序作为一个文件进行分发。
所需的Qt版本最低为5.5。
Windows上配置Qt
我们建议您在Windows配置Qt时使用以下选项:
configure -prefix %CD%\qtbase -release -static -static-runtime -target xp -accessibility -no-opengl -no-icu -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests -skip qtactiveqt -skip qtenginio -skip qtlocation -skip qtmultimedia -skip qtserialport -skip qtquick1 -skip qtquickcontrols -skip qtscript -skip qtsensors -skip qtwebkit -skip qtwebsockets -skip qtxmlpatterns -skip qt3d
Linux上配置Qt
我们建议您在Linux配置Qt时使用以下选项:
configure -prefix $PWD/qtbase -release -static -accessibility -qt-zlib -qt-libpng -qt-libjpeg -qt-xcb -qt-pcre -qt-freetype -no-glib -no-cups -no-sql-sqlite -no-qml-debug -no-opengl -no-egl -no-xinput -no-xinput2 -no-sm -no-icu -nomake examples -nomake tests -skip qtactiveqt -skip qtenginio -skip qtlocation -skip qtmultimedia -skip qtserialport -skip qtquick1 -skip qtquickcontrols -skip qtscript -skip qtsensors -skip qtwebkit -skip qtwebsockets -skip qtxmlpatterns -skip qt3d
OS X上配置Qt
我们建议您在OS X使用以下配置选项:
configure -prefix $PWD/qtbase -release -static -accessibility -qt-zlib -qt-libpng -qt-libjpeg -no-cups -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests -skip qtactiveqt -skip qtenginio -skip qtlocation -skip qtmultimedia -skip qtserialport -skip qtquick1 -skip qtquickcontrols -skip qtscript -skip qtsensors -skip qtwebkit -skip qtwebsockets -skip qtxmlpatterns -skip qt3d
设置Qt安装程序框架
- 从http://code.qt.io/cgit/installer-framework/installer-framework.git仓库
clone
Qt安装框架工具源码。 - 通过运行一个静态编译Qt的
qmake
来生成Makefile
,然后通过make
或nmake
进行构建。
注意: 要向Qt Installer Framework提供补丁,请遵循标准的Qt流程和指南。 欲了解更多信息,请参阅贡献的Qt。
3、最终用户工作流程
离线和在线安装程序的最终用户体验类似。 与您的应用程序一起,安装程序将安装一个维护工具,该工具由程序包管理器,更新程序和卸载程序组成。 最终用户可以使用维护工具添加,更新和删除组件。 维护工具连接到外部存储库以获取要添加或更新的组件。 您可以在配置文件中指定存储库,或者最终用户可以在维护工具设置中指定它。
您可以支持以下最终用户工作流:
初次安装
下图说明了安装应用程序的默认工作流程:
本节使用在OS X上运行的应用程序安装程序示例说明最终用户的默认工作流程。 安装程序在每个受支持的桌面平台上具有原生外观,因此在Linux和Windows上运行时,它们的外观和感觉不同。
示例文件存储在Qt Installer Framework存储库中的examples\tutorial
目录中。 您可以使用binarycreator
工具来创建应用程序安装程序。
启动安装程序
当最终用户启动安装程序时,将打开介绍页面:
您可以在config.xml
配置文件中指定安装程序的名称和要安装的产品。
当最终用户选择继续时,将打开目标目录
选择页面。
选择目标目录
最终用户必须指定安装的目标目录。 您可以在config.xml
配置文件中指定默认值。
当最终用户选择继续时,将打开组件选择页面。
如果该目录已存在文件,将打开如下警告页面:
选择组件
组件选择页面列出了 可用于安装的组件 以及每个组件的简短描述。 最终用户 选择要安装的组件 。 他们可以选择全选以选择所有组件,取消选择全部可取消选择它们,或选择默认以恢复为默认选择。
将可安装的组件添加到包目录中的data
目录。 您可以在meta
目录中的package.xml
文件中指定有关组件的信息。
您可以使用布尔运算符或脚本来指定是否默认选择组件。
当最终用户选择继续时,将打开许可证检查页面。
接受许可协议
在许可检查页面上,最终用户 必须接受许可协议 的条款才能继续安装。
如果在package.xml文件中指定许可证文件并将文件复制到元目录,则会显示许可证检查页面。
选择Windows程序组
在Windows上,“开始”菜单目录选择页面 允许最终用户在Windows开始菜单中选择产品的 程序组。
您可以在config.xml
配置文件中为程序组指定 默认值 。
当最终用户选择下一步
时,将打开准备安装
页面。
安装组件
在准备安装页面通知最终用户,当用户选择安装
时,安装开始。
在安装过程中,执行安装页面显示有关安装进度的信息。 最终用户可以选择“显示详细信息”以查看更多信息。

稍后从存储库安装其余组件。 软件包管理器是在初次安装期间与应用程序一起安装的维护工具的一部分。 仅当包含组件的存储库可在本地或外部可用时,此操作才有效。
下图说明了安装附加组件的默认工作流程:
本节使用由在OS X上运行的Qt 5安装程序安装的维护工具
作为最终用户在初次安装后如何添加组件
实现的示例。 维护工具包含程序包管理器
,更新程序
和卸载程序
。
启动程序包管理器
当最终用户启动维护工具时,将打开介绍页面:
当最终用户选择包管理器(Package Manager)
,然后单击继续
时,将打开组件选择页面。
选择其他组件
组件选择页面列出了可用于安装的组件以及每个组件的简短描述。 已安装的组件在列表中显示为已选择。 最终用户选择要安装的其他组件。 他们可以选择重置以再次显示当前安装的组件。
当最终用户选择继续时,将打开准备更新页面。
安装所选组件
准备更新页面通知最终用户,在用户选择 更新(Update)
时安装组件。
更新页面显示有关安装进度的信息。 最终用户可以选择“显示详细信息”以查看更多信息。
安装完成后,将打开更新完成页面。
移除组件
下图说明了删除全部或部分已安装组件的默认工作流程:
本节使用在OS X上运行的Qt 5维护工具,作为最终用户如何删除选定或所有组件实现的示例。
删除所有组件
当最终用户启动维护工具时,将打开介绍页面:

,然后单击继续
以删除所有已安装的组件。
准备卸载页面通知最终用户,当用户选择卸载时,可以开始 卸载 。
删除所选组件
最终用户可以选择包管理器(Package Manager)
,然后选择 继续 ,以在 组件选择页面 上选择要删除的组件:
当最终用户取消要删除的组件的选中状态,然后选择继续时,将打开即将更新的页面。 它通知最终用户在用户选择 更新(Update)
时删除组件。
更新页面显示有关安装进度的信息。 最终用户可以选择“显示详细信息”以查看更多信息。
安装完成后,将打开更新完成页面。
更新组件
下图说明了用于更新已安装组件的默认工作流程:
本节使用在OS X上运行的Qt 5维护工具,作为最终用户如何删除选定或所有组件实现的示例。
启动更新程序
当最终用户启动维护工具时,将打开介绍页面:
当最终用户选择更新组件(Update components)
,然后单击继续
时,将打开组件选择页面。
选择要更新的组件
更新选择列表显示最终用户 可以选择 的 可用更新列表 。
当用户选择继续
,将打开准备更新页面。
更新所选组件
准备更新页面通知最终用户,选择更新(Update)
进行组件更新。
更新页面显示有关安装进度的信息。 最终用户可以选择“显示详细信息”以查看更多信息。
安装完成后,将打开更新完成页面。
特定设置
设置页面允许最终用户指定代理设置或安装附加组件。 最终用户在介绍页面上选择以进行指定设置。
指定代理设置
默认情况下,安装程序不使用任何代理设置。 最终用户可以选择使用系统代理设置或手动指定代理设置。
安装附加组件
要安装附加组件,最终用户需选择存储库(Repositories)
选项卡。
如果Web服务器需要身份验证,则最终用户可以添加其用户名和密码。 如要显示密码,最终用户可以选择显示密码。
要将其自己的存储库添加到安装程序,最终用户可以选择添加并指定指向存储库的URL。
临时存储库只能在初次安装时使用一次。 安装后,只有默认和用户定义的存储库可用。
Qt Installer Framework 使用说明(一)的更多相关文章
- Qt Installer Framework 使用说明(三)
目录 6.Qt Installer Framework 示例 7.参考 Reference 配置文件 Configuration File 配置文件元素的简要说明 Summary of Configu ...
- Qt Installer Framework 使用说明(二)
目录 4.教程: 创建一个安装程序 创建软件包目录 创建配置文件 创建程序包信息文件 指定组件信息 指定安装程序版本 添加许可证 选择默认内容 创建安装程序内容 创建安装程序二进制文件 5.创建安装程 ...
- 使用Qt installer framework制作安装包
一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...
- Qt Installer Framework的学习
Qt Installer Framework是Qt默认包的发布框架.它很方便,使用静态编译Qt制作而成.并且使用了压缩率很高的7z对组件进行压缩.之所以有这些好处,我才觉得值得花一点儿精力研究一下这个 ...
- Qt Installer Framework实战
Qt Installer Framework是Qt发布的安装程序支持框架,只需要简单的配置就可以生成安装文件,同时可以通过javascript脚本来定制安装过程. 目录结构 config packag ...
- 使用Qt Installer Framework制作软件安装包
概述 Qt Installer Framework(缩写QIF)是Qt官方用于生成软件安装包的工具.包括Qt Creator和Qt Installer Framework自身的安装包都是由这个工具制作 ...
- Qt Installer Framework的学习(三)
Qt Installer Framework的学习(三) Qt Installer Framework的样例中.通常是这种:config目录一般放了一个config.xml文件,包括的是安装配置xml ...
- Qt Installer Framework的学习(二)
Qt Installer Framework的学习(二) Qt Installer Framework的一些操作能够使用最常见的Qt项目来表示,也就是说,书写pro文件,使用qmake执行之,除了能够 ...
- Qt Installer Framework 3.0.1 Released(功能比较强)
We are happy to announce the release of Qt IFW 3.0.1. 3.0.1 is fully compatible with 2.0.5, which me ...
随机推荐
- Java hashCode() 和 equals()的若干问题解答<转载自skywang12345>
第1部分 equals() 的作用equals()的作用是用来判断两个对象是否相等.equals()定义在JDK的Object类中.通过判断两个对象的地址是否相等(即,是否是同一个对象)来区分它们是否 ...
- 【转】从QDataStream向QByteArray中写入数据时的注意点(QT)
最近发现从QDataStream向QByteArray中写入数据常常是写不进去的,通过查看QT的源码: QDataStream &operator>>(QDataStream &a ...
- [leetcode]Pascal's Triangle @ Python
原题地址:https://oj.leetcode.com/problems/pascals-triangle/ 题意: Given numRows, generate the first numRow ...
- asp.net网站发布
1.iis里面新建一个网站,目录可以新建(例如:F:\dotNetWeb),还可以创建子文件夹如:F:\dotNetWeb\my,网站路径是可以自己设置的,也可以使用IIS默认的网站. 2.vs201 ...
- 算法-强连通分量和Kosaraju算法
有向图中,连通性比较好理解,如果两个顶点V和顶点W是可达的,可以称之为强连通的,即存在路径A→B,同时也存在一条有向路径B→A.从之前的有向环的判定过程中其实我们可以得到一个结论就是两个是强连通的当且 ...
- win7系统不能用telnet命令的两种解决方法
电脑专业人员对telnet命令都不陌生了,Telnet当成一种通信协议,在日常工作中,经常面对网络问题的人都会用到telnet命令,因为简单有效,可以帮助更快的找出问题.要是在使用过程中碰到win7纯 ...
- javascript this详解 面向对象
在面向对象编程语言中,对于this关键字我们是非常熟悉的.比如C++.C#和Java等都提供了这个关键字 虽然在开始学习的时候觉得比较难,但只要理解了,用起来是非常方便和意义确定的.JavaS ...
- tf.concat, tf.stack和tf.unstack的用法
tf.concat, tf.stack和tf.unstack的用法 tf.concat相当于numpy中的np.concatenate函数,用于将两个张量在某一个维度(axis)合并起来,例如: a ...
- wifidog 源码初分析(3)-转
上一篇分析了 接入设备 在接入路由器,并发起首次 HTTP/80 请求到路由器上时,wifidog 是如何将此 HTTP 请求重定向至 auth-server 的流程. 之后 接入设备 的浏览器接收到 ...
- 转: Centos安装gcc及g++
Centos安装gcc及g++ Centos支持yum安装,安装软件一般格式为yum install .......,注意安装时要先成为root用户. 按照这个思路,我想安装过程如下: 安装gcc ...