

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

# 为其创建 conda 构建配方 Autodesk Maya
<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`例如 for） AL2023，则可以使用软件包管理器作为源。由于 RPM 包不是为可重定位而构建的，因此您需要使用诸如`patchelf`解决Maya安装前缀内的依赖关系之类的工具。
+ **管理员访问权限才能进行安装**-某些安装程序需要管理员访问权限。服务管理队列不提供管理员访问权限，因此您需要在单独的系统上安装应用程序，并为软件包版本创建文件存档。的Windows安装程序Maya需要这种方法。配方中的 [README.md](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/README.md) 记录了一个使用新启动的亚马逊弹性计算云 (Amazon EC2) 实例的可重复过程。
+ **插件集成** — 示例Maya包定义`MAYA_NO_HOME=1`将应用程序与用户级配置隔离开来，并在其中添加了模块搜索路径，`MAYA_MODULE_PATH`以便插件包可以在虚拟环境中放置`.mod`文件。有关完整的插件集成惯例，请参阅 [Maya2026 示例配方](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)查看该文件的以下部分：
+ **来源** — 引用安装程序档案，包括 sha256 哈希值。在上Linux，源是Autodesk安装程序存档。在上Windows，源代码包括安装程序存档和Maya为云部署Autodesk做准备的`cleanMayaForCloud.py`脚本。更改源文件时更新哈希值，例如打包新版本时。
+ **build** — 关闭默认的二进制重定位和 DSO 链接检查，因为自动机制无法正常用于Maya使用的库和二进制目录。开启后Linux，配方中包含`patchelf`了用于手动设置相对依赖项的构建依赖项 RPATHs。
+ **about — 有关**用于浏览或处理 conda 频道内容的应用程序的元数据。

生成脚本（[build.sh 为](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/recipe/build.sh)Linux，[build\_win.sh](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/recipe/build_win.sh) 为Windows）包含解释每个步骤的注释。这些脚本执行以下关键任务：
+ **解压缩安装程序** — 将Maya安装文件提取到 conda 前缀中。由于安装程序格式不同，Linux和Windows脚本对此的处理方式有所不同。有关详细信息，请参阅构建脚本。
+ **安装系统库依赖项** — 开Linux启后，脚本会下载并提取Maya需要但服务管理的队列主机上不存在的系统库。该脚本将这些库复制到Maya`lib`目录中，以便它们在 conda 环境中可用。
+ ** RPATHs 使用 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`在需要调试时覆盖搜索路径。
+ **配置瘦客户机许可** — 该脚本设置了[所记录的瘦客户机许可](https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/2zqRBCuGDrcPZDzULJQ27p.html)，Autodesk这样`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，请按照 [README.md](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/README.md) 中的步骤创建存档。

`rattler-build publish`用于生成和发布软件包。该Maya配方需要`patchelf`作为构建依赖项Linux，可从 [conda-](https://conda-forge.org/) forge 获得。添加`-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 示例存储库中的[带Maya/Arnold任务包的转盘](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/turntable_with_maya_arnold)提交测试渲染作业。请参见[使用 Maya 渲染作业测试您的软件包](submit-render-maya-mtoa.md)。