

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

# 在本機建置和測試套件
<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`來建置和發佈套件至本機檔案系統頻道。

**注意**  
大型應用程式可能需要數十 GB 的可用磁碟空間，才能進行來源封存、解壓縮檔案和建置輸出。請確定您使用的磁碟有足夠的可用空間供套件建置輸出使用。

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

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 \
       --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`。如果您省略 選項， `rattler-build`會使用 `recipe.yaml` 檔案中定義的組建編號。

如需 的詳細資訊`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
   ```

   [https://pixi.sh/latest/reference/cli/pixi/run/](https://pixi.sh/latest/reference/cli/pixi/run/) 命令會啟用專案目錄的 conda 環境，並在其中執行指定的命令。環境會保留在專案目錄中，因此您可以從其他終端機使用相同的`pixi run`命令。

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

## 從頻道移除套件
<a name="build-test-locally-remove-packages"></a>

避免從用於生產的頻道中移除套件，因為 lockfiles 會依雜湊參考特定套件。移除套件可防止從這些 lockfile 重新建立環境。對於開發和測試頻道，您可以從頻道目錄中刪除`.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
   ```