存储库类别示例

使用 RepositoryCategories 元素设置在线安装程序,其中存储库按组分组。

存储库类别 展示了如何将存储库分组到安装程序中的类别中。

配置示例安装程序

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

  • <Name> 元素设置应用程序名称,并添加到页面名称和简介文本中。
  • <Version> 元素设置应用程序版本号。
  • <Title> 元素设置安装程序名称并在标题栏中显示。
  • <Publisher> 元素设置软件的发布者(例如,在 Windows 控制面板中显示)。
  • <StartMenuDir> 元素设置产品在 Windows 开始 菜单中的默认程序组名称。
  • <TargetDir> 元素设置默认目标目录位于当前用户主目录下的 IfwExamples 目录内(因为它使用了预先存在的变量 , @HomeDir@,作为值的一部分)。有关更多信息,请参阅 预定义变量
  • <RepositoryCategories> 元素显示如何将存储库分组到类别中。<RepositoryCategories> 可以包含一个或多个 <RemoteRepositories> 子元素,用于指定对存储库的连接。有关 <RemoteRepositories> 的更多信息,请参阅 配置存储库
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    <Name>Repository category Installer Example</Name>
    <Version>1.0.0</Version>
    <Title>Repository category Installer Example</Title>
    <Publisher>The Qt Company</Publisher>
    <StartMenuDir>Qt IFW Examples</StartMenuDir>
    <TargetDir>@HomeDir@/IfwExamples/repositoryCategories</TargetDir>
    <RemoteRepositories>
        <Repository>
            <Url>http://localhost/repository</Url>
        </Repository>
    </RemoteRepositories>
    <RepositoryCategories>
        <RepositoryCategoryDisplayname>Releases</RepositoryCategoryDisplayname>
        <RemoteRepositories>
            <DisplayName>Category 1</DisplayName>
            <Tooltip>Contains repository1 and repository2</Tooltip>
            <Repository>
                <Url>http://localhost/repository1</Url>
            </Repository>
            <Repository>
                <Url>http://localhost/repository2</Url>
            </Repository>
        </RemoteRepositories>
        <RemoteRepositories>
            <Preselected>true</Preselected>
            <DisplayName>Category 2</DisplayName>
            <Tooltip>Contains repository3</Tooltip>
            <Repository>
                <Url>http://localhost/repository3</Url>
            </Repository>
        </RemoteRepositories>
    </RepositoryCategories>
</Installer>

创建示例包信息文件

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

  • <DisplayName> 元素设置组件的易读名称。
  • <Description> 元素设置组件的易读描述。
  • <Version> 元素设置组件的版本号。
  • <ReleaseDate> 元素设置此组件版本发布的日期。
  • <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>

生成在线存储库

此安装程序包含四个包,每个包包含两个组件。Packages 目录包含两个未按类别分组的组件。它们始终在组件选择页面的树视图中可见。Packages_forcategory1packages2_forcategory1 都包含两个组件,在获取 Category 1 时可见。Packages_forcategory2 仅在获取 Category 2 时包含两个组件。

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

  • 在Windows上
    ..\..\bin\repogen.exe -p packages repository
    ..\..\bin\repogen.exe -p packages_forcategory1 repository1
    ..\..\bin\repogen.exe -p packages2_forcategory1 repository2
    ..\..\bin\repogen.exe -p packages_forcategory2 repository3
  • 在Linux或macOS上
    ../../bin/repogen -p packages repository
    ../../bin/repogen -p packages_forcategory1 repository1
    ../../bin/repogen -p packages2_forcategory1 repository2
    ../../bin/repogen -p packages_forcategory2 repository3

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

现在需要将目录设置在config.xml中设置的URL上:http://localhost/repositoryhttp://localhost/repository1http://localhost/repository2http://localhost/repository3。具体做法取决于平台和使用的网络服务器。如果您还没有运行的网络服务器,但可以安装Python,您应该可以从命令行启动一个最小的Web服务器。确保您位于示例目录中,然后输入

python -m SimpleHTTPServer 80

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

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

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

文件

©2021 Qt公司有限公司。本文档中的文档贡献归其各自所有者所有。本文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款提供的。Qt公司、Qt及其各自的品牌标志是芬兰及其它国家/地区Qt公司有限责任公司的商标。所有其他商标均为其各自所有者的财产。