robots: noindex
ffx repository
指令可在主機上建立及管理 Fusia 套件存放區。
概念
當 Fuchsia 裝置需要執行新軟體或更新現有軟體時,裝置會向 Fuchsia 套件伺服器要求並下載 Fuchsia 套件,這是可以在主機上執行的服務。接著,Fuchsia 套件伺服器會從主機上設定的 Fuchsia 套件存放區提供 Fuchsia 套件。
Fuchsia 套件存放區對應至主體機器的目錄。 處理 Fuchsia 裝置發出的要求時,Fchsia 套件伺服器會在這個目錄中尋找 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
替換為您想讓 Fusia 裝置連線的存放區名稱。如未指定
-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
如需其他選項,請參閱「停止執行套件伺服器」。
為以守護程序為基礎的套件伺服器建立套件存放區
如要在主機上建立新的 Fuchsia 套件存放區,請執行下列操作:
建立新的存放區:
ffx repository create <REPO_PATH>
其中
REPO_PATH
是新存放區的目錄路徑,例如:$ ffx repository create ~/my-fuchsia-packages
不過,系統不會檢查該目錄中是否有現有內容,因此請先確認目錄不存在,再執行這項指令。
將新的存放區新增至
ffx
設定:ffx repository add-from-pm <PM_REPO_PATH> [-r <REPO_NAME>]
請更改下列內容:
PM_REPO_PATH
:Fuchsia 套件儲存的目錄路徑。REPO_NAME
:新存放區的使用者定義名稱。如果未指定-r
選項,指令預設會將新存放區命名為devhost
。
以下範例指令會建立新的存放區,並將其命名為
my-repo
:$ ffx repository add-from-pm ~/my-fuchsia-packages -r my-repo
建立新存放區後,這個指令會靜默退出,不會產生任何輸出內容。
確認新存放區已建立完成:
ffx repository list
這個指令會輸出類似以下的內容:
$ ffx repository list NAME TYPE ALIASES EXTRA my-repo pm /usr/alice/my-fuchsia-packages
(選用) 將新的存放區設為預設:
ffx repository default set <REPO_NAME>
請將
REPO_NAME
替換為存放區名稱,例如:$ ffx repository default set my-repo
通常不需要這麼做,因為 ffx 的建構目錄層級設定會包含正確的值。
設定預設存放區後,這個指令會靜默退出,不會顯示任何輸出內容。
如要讓 Fuchsia 裝置開始從這個新存放區下載 Fuchsia 套件,您必須將該存放區註冊至裝置。
啟動 Daemon 套件伺服器
如要啟動以 ffx
守護程為基礎的 Fuchsia 套件伺服器,請執行下列指令:
ffx repository server start --daemon
這個指令會輸出類似以下的內容:
$ ffx repository server start --daemon
server is listening on [::]:8083
如需更多選項,請參閱「啟動套件伺服器」。
移除 Daemon 套件伺服器的套件存放區
如要移除 Fuchsia 套件存放區,請執行下列指令:
ffx repository remove <REPO_NAME>
將 REPO_NAME
替換為存放區的名稱,例如:
$ ffx repository remove my-repo
移除存放區後,這個指令會以無輸出內容的方式靜默退出。