

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 的 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` 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 Elastic Compute Cloud (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>

[recipe.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)定義套件中繼資料。檢閱 檔案的下列區段：
+ **source** – 參考安裝程式封存，包括 sha256 雜湊。在 上Linux，來源是Autodesk安裝程式封存。在 上Windows，來源同時包含安裝程式封存和來自 的`cleanMayaForCloud.py`指令碼Autodesk，Maya以準備雲端部署。當您變更來源檔案時更新雜湊，例如封裝新版本時。
+ **build** – 關閉預設二進位重新定位和 DSO 連結檢查，因為自動機制無法對 Maya 使用的程式庫和二進位目錄正常運作。在 上Linux，配方包含 `patchelf`作為手動設定相對 RPATHs建置相依性。
+ **關於** – 用於瀏覽或處理 conda 頻道內容之應用程式的中繼資料。

組建指令碼 (https：//[build.sh](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/recipe/build.sh) for Linux、[build\_win.sh](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/recipe/build_win.sh) for Windows) 包含說明每個步驟的註解。指令碼會執行下列關鍵任務：
+ **解壓縮安裝程式** – 將Maya安裝檔案解壓縮至 conda 字首。由於安裝程式格式， Linux和 Windows指令碼的處理方式不同。如需詳細資訊，請參閱建置指令碼。
+ **安裝系統程式庫相依性** – 在 上Linux，指令碼會下載和擷取Maya需要但服務受管機群主機上不存在的系統程式庫。指令碼會將這些程式庫複製到 Maya`lib`目錄中，以便在 conda 環境中使用。
+ **使用 patchelf 設定相對RPATHs**：在 上Linux，指令碼會使用 `patchelf --add-rpath`將 `$ORIGIN`-相對路徑新增至共用程式庫。此方法遵循 conda 建議，絕不可在 conda `LD_LIBRARY_PATH` 環境中使用。指令碼會在多個目錄層級 (`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_NO_HOME`，包括 `MAYA_LOCATION`、`MAYA_VERSION`、 和 `MAYA_MODULE_PATH`。在 上Windows，指令碼會產生 `.sh`和 `.bat`啟用檔案，因為截止日期雲端範例佇列環境會使用 `bash` 在 上啟用環境Windows。

## 建置Maya套件
<a name="maya-build-package"></a>

建置Maya套件之前，請從Autodesk您的帳戶下載Maya安裝程式。對於 Linux，將封存直接放入 `conda_recipes/archive_files`目錄。對於 Windows，請遵循 https：//[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-forge](https://conda-forge.org/) 取得。新增 `-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)。
+ 若要使用截止日期雲端套件建置佇列自動化建置，請參閱[使用截止日期雲端自動化套件建置](automate-package-builds.md)。若要同時建置 Linux和 Windows套件，請使用 `--all-platforms`選項搭配 `submit-package-job`指令碼。

若要使用 Maya和 轉譯轉盤範例Arnold，請同時建置[MtoA外掛程式](create-conda-recipe-mtoa-plugin.md)和[Maya轉接器](create-conda-recipe-maya-openjd.md)套件。發佈所有三個套件後，您可以使用 [轉盤和 Maya/Arnold](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/turntable_with_maya_arnold) 任務套件，從截止日期雲端範例儲存庫提交測試轉譯任務。請參閱[使用 Maya 轉譯任務測試套件](submit-render-maya-mtoa.md)。