创建在建安装包
新建模板小书匠在线安装包会获取仓库描述(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