Qt Installer Framework在线安装程序示例

Online Installer Example

在线安装程序示例

Using the repogen tool and the configuration file to set up an online installer.

使用重新生成工具和配置文件设置在线安装程序。

Online Installer illustrates how to set up an online installer that fetches the original packages and updates to them from a server.

Online Installer演示了如何设置在线安装程序,该安装程序从服务器获取原始包并对其进行更新。

Configuring the Example Installer
配置示例安装程序

The installer configuration file, config.xml, in the config directory specifies the text and default values used in the installer:

config目录中的安装程序配置文件config.xml指定了安装程序中使用的文本和默认值:

  • The <Name> element sets the application name and adds it to the page name and introduction text.
  • <Name>元素设置应用程序名称并将其添加到页面名称和介绍文本中。
  • The <Version> element sets the application version number.
  • <Version>元素设置应用程序版本号。
  • The <Title> element sets the installer name and displays it on the title bar.
  • <Title>元素设置安装程序名称并将其显示在标题栏上。
  • The <Publisher> element sets the publisher of the software (as shown in the Windows Control Panel, for example).
  • <Publisher>元素设置软件的发布者(例如,如Windows控制面板所示)。
  • The <StartMenuDir> element sets the name of the default program group for the product in the Windows Start menu.
  • <StartMenuDir>元素在Windows“开始”菜单中设置产品的默认程序组的名称。
  • The <TargetDir> element sets the default target directory location to be within the IfwExamples directory in the home directory of the current user (because it uses the pre-existing variable , @HomeDir@, as part of the value). For more information, see Predefined Variables.
  • ​<TargetDir>元素将默认目标目录位置设置为当前用户主目录中的IfwExamples目录内(因为它使用预先存在的变量@HomeDir@作为值的一部分)。有关详细信息,请参见预定义变量。
  • The <RemoteRepositories> element is specific to an online installer. It can contain one or several <Repository> child elements that specify a connection to an online repository. For more information about the available options, see Configuring Repositories.
  • ​<RemoteRepositories>元素特定于联机安装程序。它可以包含一个或多个<Repository>子元素,用于指定与在线存储库的连接。有关可用选项的更多信息,请参阅配置存储库。
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    <Name>Online Installer Example</Name>
    <Version>1.0.0</Version>
    <Title>Online Installer Example</Title>
    <Publisher>The Qt Company</Publisher>
    <StartMenuDir>Qt IFW Examples</StartMenuDir>
    <TargetDir>@HomeDir@/IfwExamples/online</TargetDir>
    <RemoteRepositories>
        <Repository>
            <Url>http://localhost/repository</Url>
        </Repository>
    </RemoteRepositories>
</Installer>
Creating the Example Package Information File
创建示例包信息文件

The installer package information file, package.xml, in the meta directory specifies the components that are available for installation:

meta 目录中的安装程序包信息文件package.xml指定了可用于安装的组件:

  • The <DisplayName> element sets the human-readable name of the component.
  • <DisplayName>元素设置组件的人类可读名称。
  • The <Description> element sets the human-readable description of the component.
  • <Description>元素设置组件的人类可读描述。
  • The <Version> element sets the version number of the component.
  • <Version>元素设置组件的版本号。
  • The <ReleaseDate> element sets the date of release for this component version.
  • <ReleaseDate>元素设置此组件版本的发布日期。
  • The <Default> element is set to true to preselect the component in the installer.
  • 将<Default>元素设置为true,以在安装程序中预选组件。
<?xml version="1.0" encoding="UTF-8"?>
<Package>
    <DisplayName>A</DisplayName>
    <Description>Example component A</Description>
    <Version>1.0.2-1</Version>
    <ReleaseDate>2015-01-01</ReleaseDate>
    <Default>true</Default>
</Package>

This installer contains two components, A and B, that each have their own package information file with slightly different contents.

此安装程序包含两个组件A和B,每个组件都有自己的包信息文件,内容略有不同。

Generating the Online Repository
生成在线存储库

The packages need to be converted to a file structure that the installer can fetch at runtime. To use the repogen tool to convert the packages, switch to the example source directory on the command line and enter the following command:

这些包需要转换为安装程序可以在运行时获取的文件结构。要使用repogen工具转换包,请切换到命令行上的示例源目录,然后输入以下命令:

  • On Windows:
    ..\..\bin\repogen.exe -p packages repository
    
  • On Linux or macOS:
    ../../bin/repogen -p packages repository
    

The generated repository directory will now contain a full copy of the package data and some additionally generated metadata, such as SHA checksums.

生成的repository 目录现在将包含包数据的完整副本和一些额外生成的元数据,如SHA校验和。

The directory now needs to be made available at the URL set in config.xmlhttp://localhost/repository. How this is done depends on the platform and web server used. If you do not have a running web server yet, but have Python available, you should be able to start a minimal web server from the command line. Make sure you are in the example directory, and then enter:

现在需要在config.xml中设置的URL处提供该目录:http://localhost/repository.如何做到这一点取决于所使用的平台和web服务器。如果还没有一个正在运行的web服务器,但有Python可用,应该能够从命令行启动一个最小的web服务器。确保位于示例目录中,然后输入:

python -m SimpleHTTPServer 80

You should now be able to open and explore http://localhost/repository in your web browser.

​现在,应该能够打开并探索http://localhost/repository在网络浏览器中。

Note: If you do not have enough permissions to set up a web server locally, you can also specify an absolute file:/// URL as the value of the URL element in config.xml. For example, file:///C:/Qt/QtIFW/examples/online/repository would be a valid URL on Windows if repository is located in C:\Qt\QtIFW\examples\online.

注意:如果没有足够的权限在本地设置web服务器,还可以指定一个绝对file:///URL作为config.xml中URL元素的值。例如file:///C:/Qt/QtIFW/examples/online/repository如果存储库位于C:\Qt\QtIFW\examples\online中,则这将是Windows上的有效URL。

Generating the Example Installer
生成示例安装程序

To create the example installer, switch to the example source directory on the command line and enter the following command:

要创建示例安装程序,请在命令行上切换到示例源代码目录,然后输入以下命令:

  • On Windows:
    ..\..\bin\binarycreator.exe --online-only -c config\config.xml -p packages installer.exe
    
  • On Linux or macOS:
    ../../bin/binarycreator --online-only -c config/config.xml -p packages installer
    

You should now be able to run the installer and install from the repository.

现在,应该能够运行安装程序并从存储库安装。

Providing Updates
提供更新

A benefit of using an online installer is that you can add new packages over time or update the existing ones. During new installations, the new and updated packages are automatically used, and existing installations can be upgraded to use them.

使用在线安装程序的好处是,可以随着时间的推移添加新的软件包或更新现有的软件包。在新安装过程中,会自动使用新的和更新的软件包,并且可以升级现有安装以使用它们。

To update a package, you need to increase its <Version> element in package.xml. The packages_update directory in the example folder is a copy of the package directory, with an updated component A. To deploy an update, you again use repogen:

要更新包,您需要在package.xml中增加其<Version>元素。示例文件夹中的packages_update目录是包目录的副本,其中包含更新的组件A。要部署更新,请再次使用repogen:

  • On Windows:
    ..\..\bin\repogen.exe --update-new-components -p packages_update repository
    
  • On Linux or macOS:
    ../../bin/repogen --update-new-components -p packages_update repository
    

--update-new-components lets repogen compare the version numbers of components in the repository and the packages directory, and only updates packages that are new, or have a higher version number. See also the Summary of repogen Parameters.

​--update new components允许repogen比较存储库和packages目录中组件的版本号,并且只更新新的或版本号更高的包。另请参见再生参数摘要。

If you then run the maintenance tool from the previous installation and select Update Components, you should see that an update of package A is available.

如果在之前的安装中运行维护工具并选择“更新组件”,应该会看到包A的更新可用。

For more information on providing updates, see Promoting Updates.

​有关提供更新的更多信息,请参阅升级更新。

Files:

© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. The Qt Company, Qt and their respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值