ffx repository 指令可在主體機器上建立及管理 Fuchsia 套件存放區。
概念
當 Fuchsia 裝置需要執行新軟體或更新現有軟體時,裝置會向 Fuchsia 套件伺服器要求並下載 Fuchsia 套件。Fuchsia 套件伺服器是您可以在主體機器上執行的服務。Fuchsia 套件伺服器接著會從主體機器上設定的 Fuchsia 套件存放區提供 Fuchsia 套件。
Fuchsia 套件存放區會對應至主體機器上的目錄。處理來自 Fuchsia 裝置的要求時,Fuchsia 套件伺服器會在這個目錄中尋找 Fuchsia 套件。如果找到,套件伺服器會直接從這個目錄將套件提供給裝置。因此,您應將開發中的 Fuchsia 封裝檔案儲存在主機的此目錄中,以供目標裝置使用。
建立新的 Fuchsia 套件存放區後,您必須向 Fuchsia 裝置 (或多部裝置) 註冊套件存放區,裝置才能從這個存放區下載 Fuchsia 封裝檔案。Fuchsia 裝置只能從已註冊的 Fuchsia 套件存放區下載 Fuchsia 套件。
最後,您可以設定 Fuchsia 套件伺服器,從同一部主體機器上的多個 Fuchsia 套件存放區提供服務,並為每個套件存放區指定特定用途 (例如將穩定版套件與實驗性套件分開)。
建立套件存放區
如要在主體機器上建立及設定新的套件存放區,請按照下列步驟操作:
建立新的存放區:
ffx repository create <REPOPATH>將
REPO_PATH替換為新存放區的目錄路徑。不過,該目錄中沒有現有內容的檢查,因此請務必先確認目錄不存在,再執行這項指令。
(選用) 設定存放區的預設名稱:
ffx repository default set <REPO_NAME>將
REPO_NAME替換為套件存放區的名稱,例如:ffx repository default set my-repo通常不需要這麼做,因為
ffx的建構目錄層級設定已包含正確的值。設定預設存放區後,這項指令會無聲無息地結束,不會產生輸出內容。
啟動 Fuchsia 套件伺服器
如要從主體機器上的 Fuchsia 套件存放區提供套件,機器上必須執行 Fuchsia 套件伺服器。
如要啟動新的 Fuchsia 套件伺服器,請執行下列指令:
ffx repository server start --foreground --repo-path <REPO_PATH>將 REPO_PATH 替換為主體機器上產品組合的路徑,例如:
$ ffx repository server start --foreground --repo-path ~/my-product-bundle
此外,請注意,這項指令會在前景啟動套件伺服器 (--foreground)。也就是說,伺服器的記錄訊息會列印至終端機視窗。或者,您也可以使用 --background 選項,在背景啟動套件伺服器。在這種情況下,記錄訊息會儲存在 ${log.dir}/repo-REPO_NAME.log 檔案中。如需更多選項,請參閱「啟動套件伺服器」。
使用產品套件啟動 Fuchsia 封裝伺服器
如要從現有產品套件放送套件,請下載產品套件,並使用產品套件啟動套件伺服器。
請完成下列步驟:
查看可選產品清單:
ffx product list下載所需產品組合:
ffx product download <PRODUCT> <DOWNLOAD_DIR>請替換下列項目:
PRODUCT_NAME:目標 Fuchsia 裝置的產品名稱。DOWNLOAD_DIR:要下載產品套件的目錄。
例如:
S ffx product download core.x64 ~/Downloads/product-bundles/啟動 Fuchsia 套件伺服器:
ffx repository server start --background --product-bundle <DOWNLOAD_DIR>將
DOWNLOAD_DIR替換為包含產品套裝組合的目錄,例如:$ ffx repository server start --background --product-bundle ~/Downloads/product-bundles如要確認是否為產品組合目錄,請檢查目錄中是否有
product.bundle.json檔案。詳情請參閱「啟動套件伺服器」。
將套件存放區註冊至 Fuchsia 裝置
套件伺服器執行後,您必須向目標裝置註冊伺服器位址。
請完成下列步驟:
讓 Fuchsia 裝置連線至新存放區:
ffx target repository register [-r <REPO_NAME>] --alias fuchsia.com --alias chromium.org將
REPO_NAME替換為要讓 Fuchsia 裝置連線的存放區名稱。如未指定
-r旗標,指令會選取預設存放區。舉例來說,這項指令會將目前的 Fuchsia 裝置設為連線至fuchsia.com的預設存放區 (my-repo):$ ffx target repository register --alias fuchsia.com --alias chromium.org註冊存放區後,這個指令會以無輸出內容的方式自動結束。
確認新存放區已註冊:
ffx target repository list這個指令會輸出類似以下的結果:
$ ffx target repository list REPO URL ALIASES fuchsia-pkg://default ["http://10.0.2.2:8083/my-repo"] ["fuchsia.com", "chromium.org"]
取消註冊套件存放區
如要從裝置取消註冊 Fuchsia 套件存放區,請執行下列指令:
ffx target repository deregister [-r <REPO_NAME>]將 REPO_NAME 替換為已註冊的存放區名稱,例如:
$ ffx target repository deregister -r my-repo
如果未指定 -r 選項,指令會選取預設存放區。
停止 Fuchsia 套件伺服器
如要停止執行中的 Fuchsia 套件伺服器,請執行下列指令:
ffx repository server stop這個指令會輸出類似以下的結果:
$ ffx repository server stop
server stopped
如需更多選項,請參閱「停止執行套件伺服器」。