Rez中文文档10 Contexts
发表于更新于
字数总计:597阅读时长:2分钟阅读量: 长沙
DocrezRez中文文档10 Contexts
lingyun概述
当使用rez-env
创建解析环境时,实际上是创建了一个称为context的东西。
一个context存储的信息包括:
- 初始程序包请求列表
- 被选择的变体列表
- 一个直观显示解析的图表
context不存储解析到的程序包副本,而是为每个包存储一种句柄,
它提供了足够的信息来知道从哪里获取完整的包定义和内容。
context本身非常小,以json格式存储在一个rxt文件中。
当你使用rez-env时,它实际在磁盘上创建了一个临时的context文件,直到shell退出时这个文件就会被删除。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| ]$ rez-env foo bah
You are now in a rez-configured environment.
resolved by ajohns@14jun01.methodstudios.com, on Wed Oct 22 12:44:00 2014, using Rez v2.0.rc1.10
requested packages: foo bah
resolved packages: eek-2.6 /packages/inhouse/eek/2.6 foo-1.2 /packages/inhouse/foo/1.2 bah-4 /packages/inhouse/bah/4
> ]$ echo $REZ_RXT_FILE /tmp/rez_context_0tMS4U/context.rxt
|
解析存储
可以使用rez-env —output
将解析后的context直接写入文件。
1
| ]$ rez-env foo bah --output test.rxt
|
之后你可以这样读取context文件,重新构建同样的环境。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ]$ rez-env --input test.rxt
You are now in a rez-configured environment.
resolved by ajohns@14jun01.methodstudios.com, on Wed Oct 22 12:44:00 2014, using Rez v2.0.rc1.10
requested packages: foo bah
resolved packages: eek-2.6 /packages/inhouse/eek/2.6 foo-1.2 /packages/inhouse/foo/1.2 bah-4 /packages/inhouse/bah/4
> ]$ █
|
context并不存储配置环境的副本(比如导出的环境变量等)。context只存储为了配置环境而需要的程序包解析列表。
当使用rez-env —input
加载一个环境时,每个包的command部分都会被解释一遍。
你可以把包的command看作配置环境时的脚本片段。通过创建一个context,你就创建了一个脚本片段列表,
当这些片段连续运行时,就产生了目标环境。
rez-context工具
rez-context
可以检查context文件。当已经在一个解析后的shell中,运行这个命令会进行检查。
除非在参数后明确指定了要检查哪一个context文件,默认都是检查当前环境。
这个例子就是指定context文件检查:
1 2 3 4 5 6 7 8 9 10 11 12 13
| ]$ rez-context test.rxt
resolved by ajohns@14jun01.methodstudios.com, on Wed Oct 22 12:44:00 2014, using Rez v2.0.rc1.10
requested packages: foo bah
resolved packages: eek-2.6 /packages/inhouse/eek/2.6 foo-1.2 /packages/inhouse/foo/1.2 bah-4 /packages/inhouse/bah/4
|