创建在线安装包

创建在线安装包

在线安装包会获取仓库描述(Updates.xml),与包中的描述文件进行对比。创建一个库repository,并将其传至web服务器。然后在生成安装包的config.xml中指定升级仓库的路径。

创建仓库

在package路径中,使用repogen工具为所有的包创建在线仓库:
repogen.exe -p <package_directory> <repository_directory>
比如,以下命令创建了一个仅包括org.qt-project.sdk.qt and org.qt-project.sdk.qtcreator的仓库,:

repogen.exe -p packages -i org.qt-project.sdk.qt,org.qt-project.sdk.qtcreator repository

当创建好仓库后,将其上传至web服务器。在安装配置文件中,必须指定仓库路径。

配置仓库

安装配置文件(config.xml)中的元素<RemoteRepositories>,可以有一个列表,包含多个仓库。每个仓库可以有如下配置:

  • <Url>, 指定一系列可用的组件.
  • <Enabled>,0表示禁用此仓库.
  • <Username>, 仓库用户名.
  • <Password>, 仓库密码.
  • <DisplayName>, 可选项,用于展示的仓库名字字符串.

URL需要指向列出可用组件的Updates.xml文件。如:

<RemoteRepositories>
     <Repository>
             <Url>http://www.example.com/packages</Url>
             <Enabled>1</Enabled>
             <Username>user</Username>
             <Password>password</Password>
             <DisplayName>Example repository</DisplayName>
     </Repository>
</RemoteRepositories>

仅当可以访问仓库的时候,安装程序才能正常运行。当安装程序完成对库的访问并完成安装后,维护工具就会拒绝再次安装。但卸载一直可用。仓库可以被启用或禁用。对于那些需要授权的仓库,也可以单独设置,但不并建议这么做,因为这些都明文记录在文本中。若授权细节未在配置文件中体现,则运行时会由对话框录入。用户可以在运行时修改这些设置。

配置仓库目录

安装配置文件(config.xml)中的元素<RepositoryCategory>,可以有包含若干个<RemoteRepositories>的列表。元素<RepositoryCategory>中的每个<RemoteRepositories>都被看作一个目录。每个目录可以分别有一个 <DisplayName>,一个<Tooltip>,一个<Preselected>,以及若干<Repository>元素。仓库目录显示在组件选择页面,在该页面的左侧:

默认地,仅没有目录的仓库会显示在组件选择引导页中。选中一个或多个仓库并点Fetch,将更新此页,以显示这些仓库中的组件内容。版本库类别中的组件被标记为unstable 组件,这意味着尽管某些组件存在依赖关系缺失、脚本错误等问题,但您仍可以安装其他组件。关于unstable的更详细信息,可参见 Summary of Configuration File Elements
一个仓库目录的例子:

<RepositoryCategories>
    <RemoteRepositories>
         <Displayname>Category 1</Displayname>
         <Preselected>true</Preselected>
         <Tooltip>Tooltip for category 1</Tooltip>
         <Repository>
                 <Url>http://www.example.com/packages</Url>
                 <Enabled>1</Enabled>
                 <Username>user</Username>
                 <Password>password</Password>
                 <DisplayName>Example repository</DisplayName>
         </Repository>
    </RemoteRepositories>
</RepositoryCategories>

生成安装程序

使用binarycreator工具生成在线安装包,输入以下命令:

<location-of-ifw>\binarycreator.exe -t <location-of-ifw>\installerbase.exe -p <package_directory> -c <config_directory>\<config_file> -e <packages> <installer_name>

例如,输入以下命令,会创建一个名为 SDKInstaller.exe,不包含org.qt-project.sdk.qt and org.qt-project.qtcreator的安装程序,因为这此包文件将从远程仓获取:

binarycreator.exe -p installer-packages -c installer-config\config.xml -e org.qt-project.sdk.qt,org.qt-project.qtcreator SDKInstaller.exe

优化安装程序大小

即使组件是从web服务器上获取,binarycreator 工具也默认将其打包到安装程序中。当安装程序检查web服务器上的更新配置文件,没有新的更新内容后,就不会下载服务器端内容。
或者,也可以创建本身不包含任何组件文件,所有组件都从服务器仓库获取的在线安装程序。使用binarycreator工具的参数 -n 来仅添加根组件到安装程序中。通过根组件是空的,仅包含xml描述文件。
想了解更多参数选项,参见Summary of binarycreator Parameters

posted @ 2023-09-26 16:32  sammy621  阅读(61)  评论(0编辑  收藏  举报