

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

# アプリケーションまたはプラグインの conda パッケージを作成する
<a name="conda-package"></a>

conda パッケージは、任意の言語で記述されたソフトウェアの圧縮アーカイブです。Conda はさまざまなオペレーティングシステムとアーキテクチャの組み合わせをサポートしているため、Blender、Maya、 などの完全なアプリケーションを Python やその他の言語用のライブラリNukeとともにパッケージ化できます。conda パッケージの詳細については、conda ドキュメントの[「パッケージ](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/packages.html)」を参照してください。

conda パッケージを使用するには、仮想環境にインストールします。conda 仮想環境には、パッケージがインストールされている*プレフィックスディレクトリ*があります。パッケージのインストールでは、サポートされている場合にファイルのハードリンクまたは再リンクを使用するため、同じパッケージで複数の環境を作成しても、ディスク容量が大幅に増えることはありません。仮想環境を使用するには、仮想環境をアクティブ化して環境変数を設定します。アクティベーションは、パッケージが提供するスクリプトを実行し、各パッケージに PATH やその他の環境変数を変更する機会を与えます。Conda パッケージには通常アプリケーションまたはライブラリが含まれていますが、柔軟なアクティベーションにより、共有ファイルシステムにインストールされているアプリケーションを指すこともできます。

カスタムパッケージの作成には 3 つの段階があります。1 つの*レシピ*にはビルド手順が含まれており、1 つの*パッケージ*はビルドされたアーティファクト (`.conda` または `.tar.bz2` ファイル) であり、1 つの*チャネル*はインストール用のパッケージをホストします。`rattler-build publish` コマンドは 3 つのステップをすべて処理します。レシピをパッケージに構築してチャネルに発行することも、パッケージアーティファクトを直接使用して公開することもできます。

[conda-forge](https://conda-forge.org/) コミュニティは、さまざまなオープンソースソフトウェアのパッケージレシピを維持し、パッケージアーティファクトを`conda-forge`チャネルでホストします。をパッケージソース`conda-forge`として含めるようにキューを設定し、実行する conda-forge パッケージに依存するカスタムパッケージを構築できます。の場合Linux、conda-forge は CUDA サポートを含む完全なコンパイラツールチェーンをホストし、一貫したコンパイルとリンクのオプションが選択されます。conda-forge パッケージを独自のレシピの依存関係として使用したり、同じ環境のカスタムパッケージと一緒にインストールしたりできます。

依存関係を含むアプリケーション全体を conda パッケージに結合できます。Deadline Cloud がサービスマネージドフリートの[期限クラウドチャネル](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html#conda-queue-environment)で提供するパッケージは、このバイナリ再パッケージ化アプローチを使用します。これにより、conda 仮想環境に合わせてインストールと同じファイルが整理されます。

**注記**  
大規模なアプリケーションでは、ソースアーカイブ、抽出されたファイル、ビルド出力に数十 GB の空きディスク容量が必要になる場合があります。パッケージビルド出力に十分な空き容量があるディスクを使用していることを確認してください。

## アプリケーションをパッケージ化する
<a name="conda-package-application"></a>

conda のアプリケーションを再パッケージ化する場合、次の 2 つの目標があります。
+ アプリケーションのほとんどのファイルは、プライマリ conda 仮想環境構造とは別にする必要があります。その後、環境はアプリケーションを [conda-forge](https://conda-forge.org/) などの他のソースのパッケージと混在させることができます。
+ conda 仮想環境がアクティブ化されると、アプリケーションは PATH 環境変数から使用可能になります。

**conda のアプリケーションを再パッケージ化するには**

1. アプリケーションをインストールする conda ビルドレシピを などのサブディレクトリに書き込みます`$CONDA_PREFIX/opt/<application-name>`。これにより、 `bin`や などの標準プレフィックスディレクトリから分離されます`lib`。

1. シンボリックリンクまたは起動スクリプトを に追加`$CONDA_PREFIX/bin`して、アプリケーションバイナリを実行します。

   または、`conda activate`コマンドが実行する activate.d スクリプトを作成して、アプリケーションバイナリディレクトリを PATH に追加します。シンボリックリンクがサポートされていない ではWindows、環境を作成できるすべての場所で、代わりにアプリケーションの起動または activate.d スクリプトを使用します。

1. 一部のアプリケーションは、Deadline Cloud のサービスマネージドフリートにデフォルトでインストールされていないライブラリに依存します。たとえば、通常、X11 ウィンドウシステムは非インタラクティブジョブには必要ありませんが、一部のアプリケーションではグラフィカルインターフェイスなしで実行する必要があります。これらの依存関係は、作成するパッケージ内で指定する必要があります。

1. アプリケーションがプラグインをサポートしている場合は、プラグインパッケージが仮想環境でアプリケーションと統合するために従うべき明確な規則を指定します。たとえば、[Maya2026 サンプルレシピ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-2026#instructions-for-maya-plugin-packages)は、この規則をMayaプラグインに文書化しています。

1. パッケージ化するアプリケーションの著作権およびライセンス契約に従ってください。ディストリビューションを制御し、ファームへのパッケージアクセスを制限するには、conda チャネルにプライベート Amazon S3 バケットを使用することをお勧めします。

`deadline-cloud` チャネル内のパッケージのサンプルレシピは、 の [Deadline Cloud サンプル](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes#readme)リポジトリで入手できますGitHub。

## プラグインをパッケージ化する
<a name="conda-package-plugins"></a>

アプリケーションプラグインは、独自の conda パッケージとしてパッケージ化できます。プラグインパッケージを作成するときは、次のガイドラインに従ってください。
+ ビルドレシピ に、ビルドと実行の両方の依存関係としてホストアプリケーションパッケージを含めます`recipe.yaml`。バージョン制約を使用して、ビルドレシピが互換性のあるパッケージでのみインストールされるようにします。
+ プラグインを登録するには、ホストアプリケーションパッケージの規則に従います。

## アダプターパッケージ
<a name="conda-package-adaptors"></a>

一部の Deadline Cloud アプリケーション統合では、アプリケーションインターフェイスを拡張する*アダプター*を使用して、[ジョブテンプレートの記述](building-jobs.md)を簡素化します。アダプターは、バックグラウンドデーモンの実行、ステータスのレポート、パスマッピングの適用をサポートするコマンドラインインターフェイスです。詳細については、「」の[「Open Job Description Adaptor Runtime](https://github.com/OpenJobDescription/openjd-adaptor-runtime-for-python#readme)」を参照してくださいGitHub。例えば、 の [deadline-cloud-for-maya](https://github.com/aws-deadline/deadline-cloud-for-maya/) GitHubには、統合されたジョブ送信 GUI と、サービスマネージドフリートの`maya-openjd`パッケージとして利用可能なMayaアダプターが含まれています。

Deadline Cloud 送信者 GUIs からのジョブ送信には、ジョブを実行するための仮想環境に含める conda パッケージを指定する`CondaPackages`パラメータ値が含まれています。の`CondaPackages`パラメータ値Mayaは通常 `maya=2025.* maya-openjd=0.15.* maya-mtoa`のようになります。プラグインパッケージの代替エントリが含まれている場合があります。キュー環境がジョブを実行するための conda 仮想環境を設定すると、これらのパッケージ名とバージョンの制約が互換性があるように解決され、実行に必要なすべての依存関係パッケージが追加されます。各アダプターとプラグインパッケージは、 のバージョン、Python のバージョンMaya、その他の依存関係など、互換性のあるものを指定します。

の [maya-openjd レシピ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-openjd)などのサンプルを使用して独自のアダプターパッケージを構築するにはGitHub、[conda-forge](https://conda-forge.org/) が提供する Python やその他の依存関係用のパッケージをビルドできます。依存関係を満たすには、まず[期限](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/deadline)と [openjd-adaptor-runtime](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/openjd-adaptor-runtime) レシピを構築する必要があります。