

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为以下对象创建 conda 构建配方 Autodesk 玛雅
<a name="create-conda-recipe-maya"></a>

与开源应用程序相比，诸如此类的商业应用程序Autodesk Maya引入了额外的封装要求Blender。该[Blender配方在开源许可证下打](create-conda-recipe-blender.md)包了一个简单的可重定位存档。商业应用程序通常通过安装程序分发，需要许可证管理配置。

## 商业应用的注意事项
<a name="maya-commercial-considerations"></a>

打包商业应用程序时，以下注意事项适用。细节说明了每种方法的适用情况Maya。
+ **许可 ** — 了解应用程序的许可权和限制。您可能需要配置许可证管理系统。阅读有关云权限的[Autodesk订阅权](https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/Subscription-Benefits-FAQ-Cloud-Rights.html)益常见问题解答，了解的云权限Maya。Autodesk产品依赖于通常需要管理员访问权限才能配置的`ProductInformation.pit`文件。精简客户机的产品功能提供了一种可重定位的替代方案。有关更多信息，请参见 Maya [ 精 MotionBuilder](https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/2zqRBCuGDrcPZDzULJQ27p.html)简客户端许可。
+ **系统库依赖关系 ** — 某些应用程序依赖于未安装在服务管理的舰队工作人员主机上的库。Maya取决于包括 freetype 和 fontconfig 在内的库。当这些库在系统包管理器中可用时（`dnf`例如 AL2023），则可以使用包管理器作为源代码。由于 RPM 包不是为可重定位而构建的，因此您需要使用诸如`patchelf`解决Maya安装前缀中的依赖关系之类的工具。
+ **管理员权限才能安装 **-某些安装程序需要管理员访问权限。 Service-managed 舰队不提供管理员访问权限，因此您需要将应用程序安装在单独的系统上，并为软件包构建创建文件存档。的Windows安装程序Maya需要这种方法。[README.md](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/README.md)在 maya-2025 版本中，最新版本包含Windows构建版本，它记录了使用新推出的亚马逊弹性计算云 (Amazon EC2) 实例的可重复过程。
+ **插件集成 ** — 该示例Maya包定义`MAYA_NO_HOME=1`将应用程序与用户级配置隔离开来，并添加了模块搜索路径，`MAYA_MODULE_PATH`以便插件包可以在虚拟环境中放置`.mod`文件。有关完整的插件集成惯例，请参阅 [Maya 2026 年示例配方](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-2026#instructions-for-maya-plugin-packages)。

## 了解食谱
<a name="maya-recipe-structure"></a>

re [ cipe.yaml ](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/recipe/recipe.yaml) 文件以 rattler-build 模板语法定义包元数据。[https://rattler-build.prefix.dev/latest/reference/recipe_file/#spec-reference](https://rattler-build.prefix.dev/latest/reference/recipe_file/#spec-reference)查看该文件的以下部分：
+ **来源 ** — 引用安装程序档案，包括 sha256 哈希。开启Linux，来源是Autodesk安装程序存档。开启Windows，源文件包括安装程序存档和Maya为云部署做准备Autodesk的`cleanMayaForCloud.py`脚本。更改源文件时更新哈希值，例如打包新版本时。
+ **build ** — 关闭默认的二进制文件重定位和 DSO 链接检查，因为自动机制不适用于Maya使用的库和二进制目录。开启Linux，该配方包括`patchelf`手动设置相对 rPath 的构建依赖关系。
+ **about ** — 有关用于浏览或处理 conda 频道内容的应用程序的元数据。

编译脚本（[build.sh ](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/recipe/build.sh) 为Linux，maya-2025 配方[中的 ](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/build_win.sh) build\_win.shWindows）包含解释每个步骤的注释。这些脚本执行以下关键任务：
+ **提取安装程序 **-将Maya安装文件提取到 conda 前缀中。由于安装程序的格式，Linux和Windows脚本对此的处理方式有所不同。有关详细信息，请参阅编译脚本。
+ **安装系统库依赖项 **-启Linux用，脚本会下载并提取Maya需要但服务管理的舰队主机上不存在的系统库。该脚本将这些库复制到Maya`lib`目录中，以便它们在 conda 环境中可用。
+ **使用 patchelf 设置相对路径 ** — 开启Linux，脚本使用`patchelf --add-rpath`向共享库添加`$ORIGIN`相对路径。这种方法遵循了 conda 的建议，即永远不要`LD_LIBRARY_PATH`在 conda 环境中使用。该脚本在多个目录级别 (`lib`,`lib/python*/site-packages`,`lib/python*/lib-dynload`) 修补库，以便每个库都能找到与其自身位置相关的依赖关系。该配方遵循最佳实践，即设置`DT_RUNPATH`而不是`DT_RPATH`，这`LD_LIBRARY_PATH`允许在调试需要时覆盖搜索路径。
+ **配置瘦客户机许可 ** — 该脚本按照文档设置[瘦客户机许可，Autodesk](https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/2zqRBCuGDrcPZDzULJQ27p.html)这样`ProductInformation.pit`文件就可以位于 conda 环境中，无需系统级管理员访问权限。
+ **设置激活脚本 **-脚本创建激活和停用脚本，用于设置环境变量`MAYA_LOCATION`，包括`MAYA_VERSION`、`MAYA_NO_HOME`、和`MAYA_MODULE_PATH`。启用Windows，脚本会生成激活文件`.sh`和`.bat`激活文件，这是因为 Deadline Cloud 示例队列环境用于`bash`激活环境Windows。

## 建造 Maya 程序包
<a name="maya-build-package"></a>

在构建Maya软件包之前，请从您的Autodesk帐户下载Maya安装程序。对于Linux，将存档直接放到`conda_recipes/archive_files`目录中。对于Windows，请按照 [ maya-2025 README.md ](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/README.md) 中的步骤创建档案。

`rattler-build publish`用于生成和发布软件包。该Maya配方需要`patchelf`作为构建依赖项Linux，可从 [ conda-f ](https://conda-forge.org/) orge 获取。添加`-c conda-forge`以使依赖项在构建期间可用。在`conda_recipes`目录中，运行以下命令。

```
rattler-build publish maya-2026/recipe/recipe.yaml \
    --to file://$HOME/my-conda-channel \
    --build-number=+1 \
    -c conda-forge
```

对于其他发布选项：
+ 要发布到 Amazon S3 频道，请参阅[将包发布到 S3 conda 频道](publish-packages-s3-channel.md)。
+ 要使用 Deadline Cloud 包构建队列自动构建，请参阅使用 Deadline Cloud [ 自动生成软件包](automate-package-builds.md)。要同时生成Linux和Windows软件包，请在`submit-package-job`脚本中使用`--all-platforms`选项。

要使用Maya和渲染转盘样本Arnold，请同时构建[MtoA插件](create-conda-recipe-mtoa-plugin.md)和[Maya适配器包](create-conda-recipe-maya-openjd.md)。发布所有三个包后，您可以使用来自 Deadline Cloud 示例存储库的 t [ urntable withMaya/Arnold](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/turntable_with_maya_arnold)job 包提交测试渲染作业。请参见使用 Maya 渲染作业[测试软件包](submit-render-maya-mtoa.md)。