

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

# ローカルでパッケージを構築およびテストする
<a name="build-test-packages-locally"></a>

Amazon S3 にパッケージを発行したり、Deadline Cloud ファームで CI/CD オートメーションを設定する前に、ローカルファイルシステムチャネルを使用してワークステーションで conda パッケージを構築およびテストできます。このアプローチにより、レシピをローカルで迅速に反復処理し、パッケージを検証できます。

`rattler-build publish` コマンドはレシピを構築し、結果のパッケージをチャネルにコピーし、1 つのステップでチャネルのインデックスを作成します。ローカルファイルシステムディレクトリをターゲットにすると、ディレクトリが存在しない場合、 によってチャネルが自動的に`rattler-build`作成および初期化されます。

次の手順では、 Blenderの [Deadline Cloud サンプルリポジトリの 4.5 サンプル](https://github.com/aws-deadline/deadline-cloud-samples)レシピを使用しますGitHub。サンプルリポジトリとは異なるレシピを置き換えるか、独自のレシピを使用できます。

## 前提条件
<a name="build-test-locally-prereqs"></a>

開始する前に、ワークステーションに次のツールをインストールします。
+ **pixi** – パッケージのインストール`rattler-build`とテストに使用するパッケージマネージャー。[pixi.sh](https://pixi.sh) から pixi をインストールします。
+ **rattler-build** – Deadline Cloud conda レシピで使用されるパッケージビルドツール。pixi をインストールしたら、次のコマンドを実行して をインストールします`rattler-build`。

  ```
  pixi global install rattler-build
  ```
+ **git** – サンプルリポジトリのクローン作成に必要です。ではWindows、 [の git Windows](https://gitforwindows.org/) `bash` は、Windowsサンプルレシピの一部に必要なシェルも提供します。

## パッケージの構築とローカルチャネルへの発行
<a name="build-test-locally-build"></a>

この手順では、Deadline Cloud サンプルリポジトリのクローンを作成し、 `rattler-build publish` を使用してパッケージを構築し、ローカルファイルシステムチャネルに公開します。

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

**パッケージを構築してローカルチャネルに公開するには**

1. Deadline Cloud サンプルリポジトリのクローンを作成します。

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

1. `conda_recipes` ディレクトリを変更します。

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

1. 次のコマンドを実行して 4.5 Blender レシピを構築し、パッケージをローカルチャネルディレクトリに発行します。

   Linux と でmacOS、次のコマンドを実行します。

   ```
   rattler-build publish blender-4.5/recipe/recipe.yaml \
       --to file://$HOME/my-conda-channel \
       --build-number=+1
   ```

   Windows (cmd) で、次のコマンドを実行します。

   ```
   rattler-build publish blender-4.5/recipe/recipe.yaml ^
       --to file://%USERPROFILE%/my-conda-channel ^
       --build-number=+1
   ```

   `rattler-build publish` コマンドは次のアクションを実行します。
   + レシピからパッケージを構築します。
   + ディレクトリが存在しない場合は、チャネルディレクトリを作成します。
   + パッケージファイルをチャネルにコピーします。
   + チャネルのインデックスを作成して、パッケージマネージャーがパッケージを検索できるようにします。

   パッケージレシピが [conda-forge](https://conda-forge.org/) などの特定のチャネルからのパッケージに依存している場合は、 コマンド`-c conda-forge`に を追加します。

**ビルド番号について**  
`--build-number=+1` オプションは、送信先チャネルに既に存在するものに基づいて、次のビルド番号を自動的に選択します。ベストプラクティスは、チャネル内のパッケージを上書きしないことです。パッケージのファイル名が同じであれば、常に新しいビルド番号にビルドしてください。を使用すると、本番稼働用チャネルまたは本番稼働用をミラーリングするステージングチャネルにビルドするときに、これ`--build-number=+1`を実現できます。  
ビルド番号を直接制御する場合は、 などの特定の値で設定できます`--build-number=7`。オプションを省略すると、 は `recipe.yaml` ファイルで定義されたビルド番号`rattler-build`を使用します。

の詳細については`rattler-build publish`、[rattler-build 公開ドキュメント](https://rattler-build.prefix.dev/latest/publish/)を参照してください。

## ビルドのデバッグ
<a name="build-test-locally-debug"></a>

ビルドが失敗した場合、 は調査できるようにビルドディレクトリ`rattler-build`を保持します。次のコマンドを実行して、ビルド中のすべての環境変数をセットアップして、ビルド環境でインタラクティブシェルを開きます。

```
rattler-build debug shell
```

デバッグシェルから、ファイルの変更、個々のビルドコマンドの実行、依存関係の追加を行って問題を分離できます。詳細については、rattler-build ドキュメントの[「ビルドのデバッグ](https://rattler-build.prefix.dev/latest/debugging_builds/)」を参照してください。

## パッケージのテスト
<a name="build-test-locally-test"></a>

パッケージを構築して公開したら、一時的な pixi プロジェクトを作成します。プロジェクトを使用してローカルチャネルからパッケージをインストールし、正しく動作することを確認します。

**パッケージをテストするには**

1. 一時テストディレクトリを作成し、ローカルチャネルを使用して pixi プロジェクトを初期化します。

   Linux と でmacOS、次のコマンドを実行します。

   ```
   mkdir package-test-env
   cd package-test-env
   pixi init --channel file://$HOME/my-conda-channel
   ```

   Windows (cmd) で、次のコマンドを実行します。

   ```
   mkdir package-test-env
   cd package-test-env
   pixi init --channel file://%USERPROFILE%/my-conda-channel
   ```

1. パッケージをプロジェクトに追加します。

   ```
   pixi add blender=4.5
   ```

1. パッケージが正しく動作することを確認します。

   ```
   pixi run blender --version
   ```

   [https://pixi.sh/latest/reference/cli/pixi/run/](https://pixi.sh/latest/reference/cli/pixi/run/) コマンドは、プロジェクトディレクトリの conda 環境をアクティブ化し、その中で指定されたコマンドを実行します。環境はプロジェクトディレクトリに保持されるため、他のターミナルから同じ`pixi run`コマンドを使用できます。

パッケージに満足したら、Deadline Cloud ワーカーがパッケージをインストールできるように、パッケージを Amazon S3 conda チャネルに発行できます。「パッケージを [S3 conda チャネルに発行する](publish-packages-s3-channel.md)」を参照してください。

## チャネルからのパッケージの削除
<a name="build-test-locally-remove-packages"></a>

ロックファイルはハッシュによって特定のパッケージを参照するため、本番稼働に使用するチャネルからパッケージを削除することは避けてください。パッケージを削除すると、それらのロックファイルから環境を再作成できなくなります。開発チャネルとテストチャネルの場合、チャネルディレクトリから`.conda`ファイルを削除し、チャネルのインデックスを再作成することで、特定のパッケージを削除できます。まず、 をインストールします`rattler-index`。

```
pixi global install rattler-index
```

次に、パッケージファイルを削除し、チャネルのインデックスを再作成します。

Linux と でmacOS、次のコマンドを実行します。

```
rm $HOME/my-conda-channel/linux-64/blender-4.5.0-hb0f4dca_1.conda
rattler-index fs $HOME/my-conda-channel
```

Windows (cmd) で、次のコマンドを実行します。

```
del %USERPROFILE%\my-conda-channel\win-64\blender-4.5.0-hb0f4dca_1.conda
rattler-index fs %USERPROFILE%\my-conda-channel
```

パッケージファイルは、`linux-64`、、 `win-64`などのプラットフォーム固有のサブディレクトリに保存されます`osx-arm64`。これらのサブディレクトリの内容を一覧表示して、削除するパッケージの正確なファイル名を見つけます。

## クリーンアップ
<a name="build-test-locally-cleanup"></a>

テスト後、テストプロジェクトとローカルチャネルを削除できます。

**テストリソースをクリーンアップするには**

1. テストプロジェクトディレクトリを削除します。

   Linux と でmacOS、次のコマンドを実行します。

   ```
   rm -rf package-test-env
   ```

   Windows (cmd) で、次のコマンドを実行します。

   ```
   rmdir /s /q package-test-env
   ```

1. ローカル conda チャネルディレクトリを削除します。

   Linux と でmacOS、次のコマンドを実行します。

   ```
   rm -rf $HOME/my-conda-channel
   ```

   Windows (cmd) で、次のコマンドを実行します。

   ```
   rmdir /s /q %USERPROFILE%\my-conda-channel
   ```

1. (オプション) ビルドされたパッケージファイルを含む`rattler-build`出力ディレクトリを削除します。

   Linux と でmacOS、次のコマンドを実行します。

   ```
   rm -rf deadline-cloud-samples/conda_recipes/output
   ```

   Windows (cmd) で、次のコマンドを実行します。

   ```
   rmdir /s /q deadline-cloud-samples\conda_recipes\output
   ```