05 Configuring Rez

zhangly 2021-03-15 15:23:26
Categories: > Tags:

概述

Rez具有大量可配置的设置。可以在这里找到设置的默认值和每个设置的释义。
最终的设置通过以下方式确定:

在一个文件中定义rez设置是常见的选择,然后为所有的用户更改环境变量REZ_CONFIG_FILE以指向这个文件。

Notes:无需在文件中设定所有的设置,只用修改所需的即可,其它没有设置的值则会从默认设置中获取。

合并规则

当存在多个配置源时,这些设置会合并在一起。
(一个配置文件不会替代前一个配置文件,而是通过值覆盖的方式)

遵循下面的规则:

也可以添加基于列表的设置。
比如下面的命令,将会追加到先前配置定义的release_hooks设置值中:
release_hooks = ModifyList(append=["custom_release_notify"])

程序包设置覆盖

程序包本身可以覆盖配置设置,这里用下面示例说明:

# in package.py
with scope("config") as c:
    c.release_packages_path = "/svr/packages/internal"

这里的包设置将覆盖默认的发布路径,比如让内部开发的包和外部开发的包发布到不同的位置。

这些配置仅适用于构建和发布程序包的时候。包括:

支持的字符引用

在所有配置文件中,支持下面的字符:

系统对象具有以下属性:

延迟加载

可以将配置设置存储在单独的文件中,仅在引用该设置的时候才会加载该设置。

如果有个较大值的设置修改,不想影响污染到主配置文件,这个方法就比较适用。

支持YAML和JSON格式:

# in rezconfig
default_relocatable_per_package = DelayLoad('/svr/configs/rez_relocs.yaml')

命令行工具

你可以用rez-config命令行工具查看当前配置的设置。

如果不带参数将显示所有设置,带参数的话如下:

]$ rez-config packages_path
- /home/sclaus/packages
- /home/sclaus/.rez/packages/int
- /home/sclaus/.rez/packages/ext

下面是如何使用自己的配置文件覆盖设置的一些示例

]$ echo 'packages_path = ["~/packages", "/packages"]' > myrezconfig.py
]$ export REZ_CONFIG_FILE=${PWD}/myrezconfig.py
]$ rez-config packages_path
- /home/sclaus/packages
- /packages

配置设置

Rez配置参数列表
这里是一个按字母排序的设置列表,在页面的Configuration Settings部分,这里就不翻译了(太长了)。