存储库类别示例
使用 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_forcategory1
和 packages2_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
生成的repository
、repository1
、repository2
和repository3
目录现在将包含软件包数据的完整副本以及一些额外生成的元数据,例如SHA校验和。
现在需要将目录设置在config.xml
中设置的URL上:http://localhost/repository
、http://localhost/repository1
、http://localhost/repository2
和http://localhost/repository3
。具体做法取决于平台和使用的网络服务器。如果您还没有运行的网络服务器,但可以安装Python,您应该可以从命令行启动一个最小的Web服务器。确保您位于示例目录中,然后输入
python -m SimpleHTTPServer 80
现在,您应该能够在您的网络浏览器中打开并探索http://localhost/repository。
注意:如果您没有足够的权限在本地设置Web服务器,您也可以将绝对file:///
URL指定为config.xml
中URL
元素的值。例如,如果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
现在,您应该能够运行安装程序并从仓库中安装。
文件
- repositorycategories/config/config.xml
- repositorycategories/packages/A/data/A.txt
- repositorycategories/packages/A/meta/package.xml
- repositorycategories/packages/B/data/B.txt
- repositorycategories/packages/B/meta/package.xml
- repositorycategories/packages2_forcategory1/A2Cagetory1/data/A2_category1.txt
- repositorycategories/packages2_forcategory1/A2Cagetory1/meta/package.xml
- repositorycategories/packages2_forcategory1/B2Category1/data/B2_category1.txt
- repositorycategories/packages2_forcategory1/B2Category1/meta/package.xml
- repositorycategories/packages_forcategory1/ACagetory1/data/A_category1.txt
- repositorycategories/packages_forcategory1/ACagetory1/meta/package.xml
- repositorycategories/packages_forcategory1/BCategory1/data/B_category1.txt
- repositorycategories/packages_forcategory1/BCategory1/meta/package.xml
- repositorycategories/packages_forcategory2/ACategory2/data/A_category2.txt
- repositorycategories/packages_forcategory2/ACategory2/meta/package.xml
- repositorycategories/packages_forcategory2/BCategory2/data/B_category2.txt
- repositorycategories/packages_forcategory2/BCategory2/meta/package.xml
- repositorycategories/repositorycategories.pro
©2021 Qt公司有限公司。本文档中的文档贡献归其各自所有者所有。本文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款提供的。Qt公司、Qt及其各自的品牌标志是芬兰及其它国家/地区Qt公司有限责任公司的商标。所有其他商标均为其各自所有者的财产。