套件是指 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>"
。(在目標裝置上) 下載套件:
pkgctl resolve fuchsia-pkg://REPO_NAME/PACKAGE_NAME
如果系統中還沒有該元件,
pkgctl
會下載 ,並將 blob 置於 blobFS 中。如果 套件已存在,系統將下載更新。
您已成功安裝或更新套件。您現在已準備好 從已安裝的套件執行元件
從已安裝的套件執行元件
如要執行元件,請使用 ffx component run
工具。如需協助,請前往:ffx component run --help
。
如果是 url
參數,請提供格式為
fuchsia-pkg://<REPO_NAME>/<PACKAGE_NAME>#meta/<COMPONENT_NAME>.cm
。