

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

# 在本機建置和測試套件
<a name="build-test-packages-locally"></a>

在將套件發佈至 Amazon S3 或在截止日期雲端陣列上設定 CI/CD 自動化之前，您可以使用本機檔案系統頻道在工作站上建置和測試 conda 套件。此方法可讓您在配方上於本機快速迭代並驗證套件。

`rattler-build publish` 命令會建置配方、將產生的套件複製到頻道，並在一個步驟中為頻道編製索引。當您以本機檔案系統目錄為目標時，如果目錄不存在， 會自動`rattler-build`建立和初始化頻道。

下列指示使用來自 上 Deadline Cloud 範例儲存庫的 Blender4.5 範例配方。 [https://github.com/aws-deadline/deadline-cloud-samples](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` shell，其中一些Windows範例配方需要。

## 建置套件並將其發佈至本機頻道
<a name="build-test-locally-build"></a>

在此程序中，您會複製截止日期雲端範例儲存庫，並使用 `rattler-build publish`來建置和發佈套件至本機檔案系統頻道。

**建置套件並將其發佈至本機頻道**

1. 複製截止日期雲端範例儲存庫。

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

1. 切換至 `conda_recipes` 目錄。

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

1. 執行下列命令來建置 Blender 4.5 配方，並將套件發佈至本機頻道目錄。

   在 Linux和 macOS上執行下列命令。

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

   在 Windows(cmd) 上執行下列命令。

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

   `rattler-build publish` 命令會執行下列動作：
   + 從配方建置套件。
   + 如果目錄不存在，則建立頻道目錄。
   + 將套件檔案複製到頻道。
   + 為頻道編製索引，讓套件管理員可以找到套件。

   如果您的套件配方取決於來自特定頻道的套件，例如 [conda-forge](https://conda-forge.org/)，請將 `-c conda-forge`新增至 命令。

若要在變更配方後重建套件，請新增 `--build-number=+1` 以自動增加建置編號。

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

如需 的詳細資訊`rattler-build publish`，請參閱 [rattler-build 發佈文件](https://rattler-build.prefix.dev/latest/publish/)。

## 偵錯組建
<a name="build-test-locally-debug"></a>

如果建置失敗， 會`rattler-build`保留建置目錄，以便您進行調查。執行下列命令，在建置環境中開啟互動式 Shell，並在建置期間設定所有環境變數。

```
rattler-build debug shell
```

從偵錯 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
   ```

當您對套件感到滿意時，您可以將套件發佈到 Amazon S3 conda 頻道，以便截止日期雲端工作者可以安裝套件。請參閱將[套件發佈至 S3 conda 頻道](publish-packages-s3-channel.md)。

## 清除
<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
   ```