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安装程序框架

  1. http://code.qt.io/cgit/installer-framework/installer-framework.git仓库cloneQt安装框架工具源码。
  2. 通过运行一个静态编译Qt的qmake来生成Makefile,然后通过makenmake进行构建。

注意: 要向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配置文件中为程序组指定 默认值

当最终用户选择下一步时,将打开准备安装页面。

安装组件

在准备安装页面通知最终用户,当用户选择安装时,安装开始。

在安装过程中,执行安装页面显示有关安装进度的信息。 最终用户可以选择“显示详细信息”以查看更多信息。

![安装中](

安装完成后,将打开安装完成页面。

在此页面中,您可以添加选项以在 关闭安装程序时 启动已安装的产品。在config.xml配置文件中指定要启动的程序和显示的文本。

添加组件

如果最终用户在初次安装期间未选择可用于安装的所有组件,则可以使用软件包管理器(Package Manager)稍后从存储库安装其余组件。 软件包管理器是在初次安装期间与应用程序一起安装的维护工具的一部分。 仅当包含组件的存储库可在本地或外部可用时,此操作才有效。

下图说明了安装附加组件的默认工作流程:

本节使用由在OS X上运行的Qt 5安装程序安装的维护工具作为最终用户在初次安装后如何添加组件实现的示例。 维护工具包含程序包管理器更新程序卸载程序

启动程序包管理器

当最终用户启动维护工具时,将打开介绍页面:

当最终用户选择包管理器(Package Manager),然后单击继续时,将打开组件选择页面。

选择其他组件

组件选择页面列出了可用于安装的组件以及每个组件的简短描述。 已安装的组件在列表中显示为已选择。 最终用户选择要安装的其他组件。 他们可以选择重置以再次显示当前安装的组件。

当最终用户选择继续时,将打开准备更新页面。

安装所选组件

准备更新页面通知最终用户,在用户选择 更新(Update) 时安装组件。

更新页面显示有关安装进度的信息。 最终用户可以选择“显示详细信息”以查看更多信息。

安装完成后,将打开更新完成页面。

移除组件

下图说明了删除全部或部分已安装组件的默认工作流程:

本节使用在OS X上运行的Qt 5维护工具,作为最终用户如何删除选定或所有组件实现的示例。

删除所有组件

当最终用户启动维护工具时,将打开介绍页面:

![添加组件介绍](

最终用户可以选择删除所有组件(Remove all components),然后单击继续以删除所有已安装的组件。

准备卸载页面通知最终用户,当用户选择卸载时,可以开始 卸载

删除所选组件

最终用户可以选择包管理器(Package Manager),然后选择 继续 ,以在 组件选择页面 上选择要删除的组件:

当最终用户取消要删除的组件的选中状态,然后选择继续时,将打开即将更新的页面。 它通知最终用户在用户选择 更新(Update)时删除组件。

更新页面显示有关安装进度的信息。 最终用户可以选择“显示详细信息”以查看更多信息。

安装完成后,将打开更新完成页面。

更新组件

下图说明了用于更新已安装组件的默认工作流程:

本节使用在OS X上运行的Qt 5维护工具,作为最终用户如何删除选定或所有组件实现的示例。

启动更新程序

当最终用户启动维护工具时,将打开介绍页面:

当最终用户选择更新组件(Update components),然后单击继续时,将打开组件选择页面。

选择要更新的组件

更新选择列表显示最终用户 可以选择可用更新列表

当用户选择继续,将打开准备更新页面。

更新所选组件

准备更新页面通知最终用户,选择更新(Update)进行组件更新。

更新页面显示有关安装进度的信息。 最终用户可以选择“显示详细信息”以查看更多信息。

安装完成后,将打开更新完成页面。

特定设置

设置页面允许最终用户指定代理设置或安装附加组件。 最终用户在介绍页面上选择以进行指定设置。

指定代理设置

默认情况下,安装程序不使用任何代理设置。 最终用户可以选择使用系统代理设置或手动指定代理设置。

安装附加组件

要安装附加组件,最终用户需选择存储库(Repositories)选项卡。

如果Web服务器需要身份验证,则最终用户可以添加其用户名和密码。 如要显示密码,最终用户可以选择显示密码。

要将其自己的存储库添加到安装程序,最终用户可以选择添加并指定指向存储库的URL。

临时存储库只能在初次安装时使用一次。 安装后,只有默认和用户定义的存储库可用。

Qt Installer Framework 使用说明(一)的更多相关文章

  1. Qt Installer Framework 使用说明(三)

    目录 6.Qt Installer Framework 示例 7.参考 Reference 配置文件 Configuration File 配置文件元素的简要说明 Summary of Configu ...

  2. Qt Installer Framework 使用说明(二)

    目录 4.教程: 创建一个安装程序 创建软件包目录 创建配置文件 创建程序包信息文件 指定组件信息 指定安装程序版本 添加许可证 选择默认内容 创建安装程序内容 创建安装程序二进制文件 5.创建安装程 ...

  3. 使用Qt installer framework制作安装包

    一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...

  4. Qt Installer Framework的学习

    Qt Installer Framework是Qt默认包的发布框架.它很方便,使用静态编译Qt制作而成.并且使用了压缩率很高的7z对组件进行压缩.之所以有这些好处,我才觉得值得花一点儿精力研究一下这个 ...

  5. Qt Installer Framework实战

    Qt Installer Framework是Qt发布的安装程序支持框架,只需要简单的配置就可以生成安装文件,同时可以通过javascript脚本来定制安装过程. 目录结构 config packag ...

  6. 使用Qt Installer Framework制作软件安装包

    概述 Qt Installer Framework(缩写QIF)是Qt官方用于生成软件安装包的工具.包括Qt Creator和Qt Installer Framework自身的安装包都是由这个工具制作 ...

  7. Qt Installer Framework的学习(三)

    Qt Installer Framework的学习(三) Qt Installer Framework的样例中.通常是这种:config目录一般放了一个config.xml文件,包括的是安装配置xml ...

  8. Qt Installer Framework的学习(二)

    Qt Installer Framework的学习(二) Qt Installer Framework的一些操作能够使用最常见的Qt项目来表示,也就是说,书写pro文件,使用qmake执行之,除了能够 ...

  9. 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 ...

随机推荐

  1. 深入探索 JUnit 4

    开始之前 关于本教程 引入 Java 5 注释为 JUnit 带来了显著改变,使它从一个受广大开发人员了解和喜爱的测试框架转变成了一个更为精简但却不那么为人熟知的框架.在本教程中,我将探讨 JUnit ...

  2. Apache Jmeter 教程

    Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadR ...

  3. matlib常用知识

    把文件装入矩阵 x = load('ex4x.dat'); y = load('ex4y.dat'); [m, n] = size(x); %得到矩阵x的行数和列数 ex4x.dat共80行,2列,通 ...

  4. how to fix bug in daily work

    0 QE will begin test the product when system is stable. so they may log a lot of issues, and our dai ...

  5. go语言之进阶篇通过select实现斐波那契数列

    一.select作用 Go里面提供了一个关键字select,通过select可以监听channel上的数据流动. select的用法与switch语言非常类似,由select开始一个新的选择块,每个选 ...

  6. 2、Python特征

    Python特征 Python编程语言中的定位 脚本语言 高阶动态编程语言 简单易学 Python是一种代表简单主义思想的语言.Python的这种伪代码本质是它最大的优点之一.它使你能够专注于解决问题 ...

  7. Cesium原理篇:3D Tiles(1)渲染调度【转】

    Cesium在2016年3月份左右推出3D Tiles数据规范,在glTF基础上提供了LOD能力,定位就是Web环境下海量三维模型数据.虽然目前3D Tiles还是Beta阶段,有不少硬伤,但3D T ...

  8. 前端Js框架汇总【转】

    概述: 有些日子没有正襟危坐写博客了,互联网飞速发展的时代,技术更新迭代的速度也在加快.看着Java.Js.Swift在各领域心花路放,也是煞是羡慕.寻了寻.net的消息,也是振奋人心,.net co ...

  9. javascript 的面向对象特性参考

    最近在看用javascript+css实现rich client.javascript 也是一个蛮有意思的语言.特别是其面向对象的实现和其他“标准”的OO launguage有很大的不同.但是,都是动 ...

  10. vue嵌套路由总结

    嵌套路由就是在一个被路由过来的页面下可以继续使用路由,嵌套也就是路由中的路由的意思. 比如在vue中,我们如果不使用嵌套路由,那么只有一个<router-view>,但是如果使用,那么在一 ...