套件是 Fuchsia 系統上的安裝單位。本文說明建構及安裝套件的各種工作流程。
工作流程如下:
詳情請參閱 ffx package build help 和 ffx repository publish help 的說明訊息。
建構套件
如要建構套件,請按照下列步驟操作:
- 建立 - meta目錄:- mkdir -p PACKAGE_DIR/meta- 將 PACKAGE_DIR 替換為要建構套件的暫存目錄。 
- 設定 - $META_PACKAGE_FILE環境變數:- export META_PACKAGE_FILE=PACKAGE_DIR/meta/package
- 開啟文字編輯器,並建立含有下列內容的 - $META_PACKAGE_FILE檔案:- { "name": "<intended name of your package here>", "version": "0" }- 目前版本編號必須為 - 0。
- 儲存檔案並關閉文字編輯器。 
- 建立套件建構資訊清單檔案 ( - $BUILD_MANIFEST_FILE),提供所有套件內容檔案的路徑,並透過變數匯出其路徑:- export BUILD_MANIFEST_FILE=BUILD_MANIFEST_FILE- 資訊清單檔案的每一行會對應至套件中包含的檔案,且格式為 - destination=source,其中:- destination是最終套件中檔案的路徑。
- source是主機電腦上檔案的路徑。
 - 資訊清單檔案中至少須包含一行套件 ID 檔案,例如: - meta/package=/path/to/meta/package- 要新增至套件的其他檔案必須以相同方式列於建構資訊清單檔案中。 
- 前往 PACKAGE_DIR 目錄: - cd PACKAGE_DIR
- 產生套件資訊清單檔案,該檔案會在 PACKAGE_DIR - /meta.far建立套件中繼資料封存檔:- ffx package build $BUILD_MANIFEST_FILE -o PACKAGE_DIR --api-level HEAD- 這個指令會隱含地建立套件資訊清單檔案,做為 PACKAGE_DIR - /package_manifest.json。- 請注意, - --api-level最好用於指定特定 API 層級,並由數值引數提供。在本範例中,我們使用 HEAD,也就是最新的開發中 API。
- 設定 - $PACKAGE_MANIFEST_FILE環境變數:- export PACKAGE_MANIFEST_FILE="PACKAGE_DIR/package_manifest.json"- 如果套件內容有所變更,您必須重新執行 - ffx package build $BUILD_MANIFEST_FILE指令。
- 建立套件封存檔,將所有套件內容收集到單一可發布的檔案中: - ffx package archive create -o "PACKAGE_DIR/PACKAGE_NAME.far" "$PACKAGE_MANIFEST_FILE"- 將 PACKAGE_NAME 替換為套件的預定名稱。 - 這個指令會將套件封存檔案建立為 PACKAGE_NAME - .far。
- 設定 - $PACKAGE_ARCHIVE環境變數:- export PACKAGE_ARCHIVE=PACKAGE_DIR/PACKAGE_NAME.far- 如果套件內容有所變更,您必須重新執行 - ffx package build和- ffx package archive create指令。
您已成功建構套件。您現在可以發布套件了。
發布套件
如要發布套件,請按照下列步驟操作:
- 初始化做為套件存放區的目錄: - ffx repository create REPO- 這會在 REPO 目錄下建立目錄結構,方便您發布套件。 
- 將套件資訊清單發布至存放區: - ffx repository publish --package $PACKAGE_MANIFEST_FILE REPO- ffx repository publish會剖析- $PACKAGE_MANIFEST_FILE,並在提供的 REPO 目錄中發布套件。- --package引數可重複使用。如果您使用不同的套件資訊清單多次執行這項指令,每個執行個體都會發布至相同的存放區。您可以使用相同的指令發布相同套件的新版本。
- (選用) 將套件封存檔發布至存放區: - ffx repository publish --package-archive $PACKAGE_ARCHIVE REPO- ffx repository publish會剖析- $PACKAGE_ARCHIVE,並在提供的 REPO 目錄中發布套件。- --package-archive引數可重複使用。如果您使用不同的套件封存檔多次執行這項指令,每個例項都會發布至相同的存放區。您可以使用相同的指令發布相同套件的新版本。
您已成功發布套件。您現在可以安裝套件了。
安裝套件
如要安裝套件,請按照下列步驟操作:
- 啟動套件伺服器,並將存放區提供給目標: - ffx repository serve --repository "REPO_NAME" --repo-path "REPO"- 根據預設,這會在主機上啟動存放區伺服器,並監聽通訊埠 - 8083。這會將存放區引入目標,做為更新來源。- --repository "REPO_NAME"為選用項目,但非常實用。
- (在目標裝置上) 檢查已設定的存放區: - pkgctl repo -v- 您應該會看到已設定的存放區,其中列出存放區網址 - "repo_url": "fuchsia-pkg://<REPO_NAME>"(以及其他設定變數)。
- 下載套件: - ffx target package resolve fuchsia-pkg://REPO_NAME/PACKAGE_NAME- 如果系統中尚未有該元件,目標裝置上的套件解析器會下載套件,並將 Blob 放在 BlobFS 中。如果套件已存在,但套件伺服器上有更新版本,系統會下載更新。 
您已成功安裝或更新套件。您現在可以從已安裝的套件執行元件。
從已安裝的套件執行元件
如要執行元件,請使用 ffx component run 工具。如需協助,請參閱:ffx component run --help。
針對 url 參數,請以 fuchsia-pkg://<REPO_NAME>/<PACKAGE_NAME>#meta/<COMPONENT_NAME>.cm 的格式提供網址。