在线安装程序示例

使用 repogen 工具和配置文件设置在线安装程序。

在线安装程序 说明了如何设置一个在线安装程序,它从服务器获取原始软件包并对其进行更新。

配置示例安装程序

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

  • <Name> 元素设置应用程序名称,并将其添加到页面名称和介绍文本中。
  • <Version> 元素设置应用程序版本号。
  • <Title> 元素设置安装程序名称,并在标题栏中显示。
  • <Publisher> 元素设置软件的发布者(例如,在 Windows 控制面板中显示)。
  • <StartMenuDir> 元素设置产品在 Windows 开始 菜单中的默认程序组名称。
  • <TargetDir> 元素设置默认目标目录位置,位于当前用户家目录中的 IfwExamples 目录内(因为它使用预定义变量 , @HomeDir@, 作为值的一部分)。有关更多信息,请参阅 预定义变量
  • <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>

创建示例包信息文件

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

  • <DisplayName> 元素设置组件的易读名称。
  • <Description> 元素设置组件的易读描述。
  • <Version> 元素设置组件的版本号。
  • <ReleaseDate> 元素设置此组件版本的发布日期。
  • <Default> 元素设置为零表示在安装程序中预选中组件。
<?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>

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

生成在线仓库

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

  • 在 Windows 上
    ..\..\bin\repogen.exe -p packages repository
  • 在 Linux 或 macOS 上
    ../../bin/repogen -p packages repository

生成的 repository 目录现在将包含整个软件包数据和一些额外生成的元数据,例如 SHA 校验和。

现在需要将目录在 config.xml 中设置的 URL 地址上提供:http://localhost/repository。如何实现取决于所使用的平台和 Web 服务器。如果您还没有运行中的 Web 服务器,但可使用 Python,可以通过命令行启动一个最小化 Web 服务器。确保您位于示例目录中,然后输入

python -m SimpleHTTPServer 80

现在您应该能够在您的 Web 浏览器中打开并探索 http://localhost/repository

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

生成示例安装程序

要创建示例安装程序,切换到命令行中的示例源目录,并输入以下命令

  • 在 Windows 上
    ..\..\bin\binarycreator.exe --online-only -c config\config.xml -p packages installer.exe
  • 在 Linux 或 macOS 上
    ../../bin/binarycreator --online-only -c config/config.xml -p packages installer

现在您应该能够运行安装程序,并从仓库中安装。

提供更新

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

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

  • 在 Windows 上
    ..\..\bin\repogen.exe --update-new-components -p packages_update repository
  • 在 Linux 或 macOS 上
    ../../bin/repogen --update-new-components -p packages_update repository

--update-new-components 允许 repogen 比较仓库中的组件版本号和软件包目录中的版本号,并且仅更新新软件包或具有更高版本号的软件包。有关信息,请参阅repogen 参数摘要

如果然后从先前安装中运行维护工具并选择 更新组件,您应该可以看到软件包 A 的更新可用。

有关提供更新的更多信息,请参阅推广更新

文件

®2021 Qt 公司有限公司。在此处包含的文档贡献是各自所有者的版权。此处提供的文档根据自由软件基金会发布的GNU 自由文档许可协议版本 1.3 的条款进行许可。Qt 公司、Qt 以及其各自的商标是芬兰和/或世界其他地区的 Qt 公司有限公司的商标。所有其他商标均为其各自所有者的财产。