Rez中文文档05 Configuring Rez
Rez中文文档05 Configuring Rez
lingyun概述
Rez具有大量可配置的设置。可以在这里找到设置的默认值和每个设置的释义。
最终的设置通过以下方式确定:
首先在Rez安装文件中的
rezconfig.py
读取设置如果
REZ_CONFIG_FILE
环境变量指向另一个文件,则设置被覆盖(变量也可以是一个文件夹路径,从而读取多个配置文件)如果
$HOME/.rezconfig
中存在该设置,则进一步覆盖前面的设置如果存在环境变量
REZ_XXX
,则该设置再次被覆盖。这里的”XXX”是设置键的大写版本,
比如image_viewer
将会被REZ_IMAGE_VIEWER
覆盖。一种特殊情况,仅在软件包生成或发布期间才生效。在这种情况下,
如果程序包定义文件包含config
部分,则会覆盖之前所有设置。
在一个文件中定义rez设置是常见的选择,然后为所有的用户更改环境变量REZ_CONFIG_FILE
以指向这个文件。
Notes:无需在文件中设定所有的设置,只用修改所需的即可,其它没有设置的值则会从默认设置中获取。
合并规则
当存在多个配置源时,这些设置会合并在一起。
(一个配置文件不会替代前一个配置文件,而是通过值覆盖的方式)
遵循下面的规则:
- 字典会递归合并在一起
- 非字典会覆盖之前的值
也可以添加基于列表的设置。
比如下面的命令,将会追加到先前配置定义的release_hooks设置值中:release_hooks = ModifyList(append=["custom_release_notify"])
程序包设置覆盖
程序包本身可以覆盖配置设置,这里用下面示例说明:
1 | # in package.py |
这里的包设置将覆盖默认的发布路径,比如让内部开发的包和外部开发的包发布到不同的位置。
这些配置仅适用于构建和发布程序包的时候。包括:
- 确定在何处找到软件包的设置,比如 packages_path,local_packages_path,release_packages_path
- build_system,release_hook和release_vcs插件类型中的设置
- package_definition_python_path
- package_filter
支持的字符引用
在所有配置文件中,支持下面的字符:
- 任何环境变量的引用,格式为${HOME}
- 系统对象的任何属性,例如{system.platform}
系统对象具有以下属性:
- platform: 平台(eg “linux”)
- arch: 架构(eg “x86_64”)
- os: 操作系统(eg “Ubuntu-12.04”)
- user: 当前用户的用户名
- home: 当前用户的主目录
- fqdn: 完整域名(eg “somescr.somestudio.com”)
- hostname: 主机名(eg “somesvr”)
- domain: 域名(eg “somestudio.com”)
- rez_version: rez的版本(eg “2.0.1”)
延迟加载
可以将配置设置存储在单独的文件中,仅在引用该设置的时候才会加载该设置。
如果有个较大值的设置修改,不想影响污染到主配置文件,这个方法就比较适用。
支持YAML和JSON格式:
1 | # in rezconfig |
命令行工具
你可以用rez-config
命令行工具查看当前配置的设置。
如果不带参数将显示所有设置,带参数的话如下:
1 | rez-config packages_path |
下面是如何使用自己的配置文件覆盖设置的一些示例
1 | echo 'packages_path = ["~/packages", "/packages"]' > myrezconfig.py |
配置设置
Rez配置参数列表
这里是一个按字母排序的设置列表,在页面的Configuration Settings部分,这里就不翻译了(太长了)。