

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# の conda ビルドレシピを作成する Blender
<a name="create-conda-recipe-blender"></a>

さまざまなアプリケーションを使用して conda ビルドレシピを作成できます。 Blenderは無料で使用でき、conda で簡単にパッケージ化できます。Blender Foundation は、複数のオペレーティングシステム用の[アプリケーションアーカイブ](https://download.blender.org/release/Blender4.2/)を提供します。Windows .zip ファイルと Linux .tar.xz ファイルを使用する conda ビルドレシピのサンプルを作成しました。このセクションでは、[Blender4.2 conda ビルドレシピ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2)を使用する方法について説明します。

[ deadline-cloud.yaml](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2) ファイルは、パッケージジョブを Deadline Cloud に送信するための conda プラットフォームおよびその他のメタデータを指定します。このレシピには、その仕組みを示すローカルソースアーカイブ情報が含まれています。linux-64 conda プラットフォームは、最も一般的な設定と一致するように、デフォルトのジョブ送信でビルドするように設定されています。deadline-cloud.yaml は次のようになります。

```
condaPlatforms:
  - platform: linux-64
    defaultSubmit: true
    sourceArchiveFilename: blender-4.2.1-linux-x64.tar.xz
    sourceDownloadInstructions: 'Run "curl -LO https://download.blender.org/release/Blender4.2/blender-4.2.1-linux-x64.tar.xz"'
  - platform: win-64
    defaultSubmit: false
    sourceArchiveFilename: blender-4.2.1-windows-x64.zip
    sourceDownloadInstructions: 'Run "curl -LO https://download.blender.org/release/Blender4.2/blender-4.2.1-windows-x64.zip"'
```

`recipe` ディレクトリ内のファイルを確認します。レシピのメタデータは [ recipe/recipe.yaml](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2/recipe/recipe.yaml) にあります。ファイルが YAML を生成するテンプレートである方法など、詳細については、conda build [meta.yaml](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html) ドキュメントも参照してください。テンプレートは、バージョン番号を 1 回だけ指定し、オペレーティングシステムに基づいて異なる値を提供するために使用されます。

で選択したビルドオプションを確認して`meta.yaml`、さまざまなバイナリ再配置と動的共有オブジェクト (DSO) リンクチェックをオフにできます。これらのオプションは、パッケージが任意のディレクトリプレフィックスの conda 仮想環境にインストールされた場合の動作を制御します。デフォルト値は、すべての依存関係ライブラリを別のパッケージにパッケージ化することを簡素化しますが、バイナリでアプリケーションを再パッケージ化する場合は、それらを変更する必要があります。

パッケージ化しているアプリケーションに追加の依存関係ライブラリが必要な場合、またはアプリケーションのプラグインを個別にパッケージ化している場合、DSO エラーが発生する可能性があります。これらのエラーは、依存関係が実行ファイルまたはそれを必要とするライブラリのライブラリ検索パスにない場合に発生します。アプリケーションは、システムにインストール`/usr/lib`されたときに、 `/lib`や などのグローバルに定義されたパスにあるライブラリに依存します。ただし、conda 仮想環境はどこにでも配置できるため、絶対的なパスはありません。Conda は、 Linuxと の両方macOSがサポートする相対的な RPATH 機能を使用してこれを処理します。詳細については、[パッケージの再配置](https://docs.conda.io/projects/conda-build/en/latest/resources/make-relocatable.html)に関する conda ビルドドキュメントを参照してください。

Blender アプリケーションアーカイブはこれを念頭に置いて構築されているため、 は RPATH の調整を必要としません。これを必要とするアプリケーションの場合、conda ビルドと同じツールを使用できます。Linux `patchelf`では 、 `install_name_tool` では ですmacOS。

パッケージのビルド中に、[build.sh](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2/recipe/build.sh) または [build\$1win.sh](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2/recipe/build_win.sh) ( で呼び出されます`bld.bat`) スクリプトが実行され、パッケージの依存関係で準備された環境にファイルがインストールされます。これらのスクリプトは、インストールファイルをコピーし、 からシンボリックリンクを作成し`$PREFIX/bin`、アクティベーションスクリプトを設定します。ではWindows、シンボリックリンクは作成されず、代わりにアクティベーションスクリプトの PATH に Blender ディレクトリを追加します。

conda ビルドレシピWindowsの一部には `cmd.exe` .bat ファイル`bash`の代わりに を使用します。これにより、ビルドスクリプト間の一貫性が向上します。`bash` での の使用に関するヒントについては、[Deadline Cloud 開発者ガイドの](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/what-is-a-deadline-cloud-workload.html#workload-portability)ワークロードの移植性に関する推奨事項を参照してくださいWindows。[git for Windows](https://gitforwindows.org/) をインストールして [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/) git リポジトリのクローンを作成している場合は、既に にアクセスできます`bash`。

[ conda ビルド環境変数](https://docs.conda.io/projects/conda-build/en/latest/user-guide/environment-variables.html)のドキュメントには、ビルドスクリプトで使用できる値が一覧表示されています。これらの値には、ソースアーカイブデータ`$SRC_DIR`、`$PREFIX`インストールディレクトリ、レシピからの他のファイル`$RECIPE_DIR`へのアクセス、`$PKG_NAME``$PKG_VERSION`パッケージ名とバージョン、ターゲット conda プラットフォーム`$target_platform`が含まれます。

## 4.2 Blender パッケージジョブを送信する
<a name="s3-channel-build-blender"></a>

Blender アーカイブをダウンロードし、パッケージ構築キューにジョブを送信することで、独自の Blender 4.2 conda パッケージを構築してジョブをレンダリングできます。キューは、関連付けられたフリートにジョブを送信してパッケージを構築し、conda チャネルのインデックスを再作成します。

これらの手順では、bash 互換シェルの git を使用して、[Deadline Cloud サンプルGitHubリポジトリ](https://github.com/aws-deadline/deadline-cloud-samples)から OpenJD パッケージビルドジョブといくつかの conda レシピを取得します。また、以下も必要になります:
+ を使用している場合はWindows、git のインストール時に bash のバージョン git BASH がインストールされます。
+ [Deadline Cloud CLI ](https://github.com/aws-deadline/deadline-cloud)がインストールされている必要があります。
+ [Deadline Cloud モニター](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/working-with-deadline-monitor.html)にログインする必要があります。

1. 次のコマンドを使用して Deadline Cloud 設定 GUI を開き、デフォルトのファームとキューをパッケージ構築キューに設定します。

   ```
   deadline config gui
   ```

1. 次のコマンドを使用して、Deadline Cloud サンプルGitHUbリポジトリのクローンを作成します。

   ```
   git clone https://github.com/aws-deadline/deadline-cloud-samples.git
   ```

1. ディレクトリの `deadline-cloud-samples` ディレクトリに変更`conda_recipes`します。

   ```
   cd deadline-cloud-samples/conda_recipes
   ```

1. というスクリプトを実行します`submit-package-job`。このスクリプトには、スクリプトBlenderを初めて実行するときにダウンロードする手順が記載されています。

   ```
   ./submit-package-job blender-4.2/
   ```

1. をダウンロードする手順に従いますBlender。アーカイブを取得したら、`submit-package-job`スクリプトを再度実行します。

   ```
   ./submit-package-job blender-4.2/
   ```

ジョブを送信したら、Deadline Cloud モニターを使用して、実行中のジョブの進行状況とステータスを表示します。

モニタの左下には、ジョブの 2 つのステップが表示されます。パッケージを構築し、インデックスを再作成します。右下には、各タスクの個々のステップが表示されます。この例では、タスクごとに 1 つのステップがあります。

![\[Blender パッケージを構築するジョブの進行状況とステータスを示す Deadline Cloud モニター。\]](http://docs.aws.amazon.com/ja_jp/deadline-cloud/latest/developerguide/images/Conda-Figure3.png)


モニタの左下には、ジョブの 2 つのステップがあります。パッケージを構築し、conda チャネルのインデックスを再作成します。右下には、各ステップの個々のタスクが表示されます。この例では、ステップごとに 1 つのタスクしかありません。

パッケージ構築ステップのタスクを右クリックし、**ログの表示**を選択すると、タスクがワーカーでどのようにスケジュールされているかを示すセッションアクションのリストがモニタに表示されます。アクションは次のとおりです。
+ **アタッチメントの同期** – このアクションは、ジョブアタッチメントファイルシステムに使用される設定に応じて、入力ジョブアタッチメントをコピーするか、仮想ファイルシステムをマウントします。
+ **Launch Conda** – このアクションは、キューの作成時にデフォルトで追加されたキュー環境からのものです。ジョブは conda パッケージを指定しないため、すぐに終了し、conda 仮想環境は作成されません。
+ **CondaBuild Env を起動**する – このアクションは、conda パッケージを構築し、チャネルのインデックスを再作成するために必要なソフトウェアを含むカスタム conda 仮想環境を作成します。[conda-forge](https://conda-forge.org/) チャネルからインストールされます。
+ **タスク実行** – このアクションはBlenderパッケージを構築し、結果を Amazon S3 にアップロードします。

アクションが実行されると、構造化された形式でログが Amazon CloudWatch に送信されます。ジョブが完了したら、**すべてのタスクのログを表示**を選択して、ジョブが実行される環境のセットアップと削除に関する追加のログを表示します。

# 4.2 Blender レンダリングジョブでパッケージをテストする
<a name="s3-channel-submit-job"></a>

Blender 4.2 パッケージを構築し、S3 conda チャネルを使用するように本番キューを設定したら、ジョブを送信してパッケージでレンダリングできます。Blender シーンがない場合は、[Blenderデモファイル](https://www.blender.org/download/demo-files)ページから Blender 3.5 - コージーキッチンシーンをダウンロードします。

先ほどダウンロードした Deadline Cloud サンプルGitHubリポジトリには、次のコマンドを使用してBlenderシーンをレンダリングするサンプルジョブが含まれています。

```
deadline bundle submit blender_render \
     -p CondaPackages=blender=4.2 \
     -p BlenderSceneFile=/path/to/downloaded/blender-3.5-splash.blend \
     -p Frames=1
```

Deadline Cloud モニターを使用して、ジョブの進行状況を追跡できます。

1. モニタで、送信したジョブのタスクを選択し、ログを表示するオプションを選択します。

1. ログビューの右側で、**Launch Conda** セッションアクションを選択します。

アクションがキュー環境用に設定された 2 つの conda チャネルで Blender 4.2 を検索し、S3 チャネルでパッケージが見つかったことがわかります。