建立 Fuchsia 套件存放區

ffx repository 指令可在主機上建立及管理 Fuchsia 套件存放區。

概念

如果 Fuchsia 裝置需要執行新軟體或更新現有軟體, 裝置會請求並下載 Fuchsia 套件Fuchsia 套件伺服器:即服務 可在主體機器上啟動 (及停止) 了。接著,Fuchsia 套件伺服器會從主機上設定的 Fuchsia 套件存放區提供 Fuchsia 套件。

Fuchsia 套件存放區會對應至主機上的目錄。處理來自 Fuchsia 裝置的要求時,Fuchsia 套件伺服器會在這個目錄中尋找 Fuchsia 套件,並在找到後提供這個目錄中的套件。因此,這個目錄通常是您產生及儲存與開發相關的 Fuchsia 套件的位置。

建立新的 Fuchsia 套件存放區後,您需要註冊 將套件存放區複製到 Fuchsia 裝置 (或裝置),以允許裝置 即可從這個套件存放區下載 Fuchsia 套件。Fuchsia 裝置 只從已註冊的 Fuchsia 套件存放區下載 Fuchsia 套件。

最後,您可以設定 Fuchsia 套件伺服器,讓伺服器從同一個主機電腦上的多個 Fuchsia 套件存放區提供服務,並將每個套件存放區專門用於特定用途 (例如將穩定套件與實驗套件分開)。

建立套件存放區

  1. 建立新的存放區:

    ffx repository create <REPO_PATH>
    

    其中 REPO_PATH 是新存放區的目錄路徑。注意:系統不會檢查該目錄中是否有現有內容,因此建議您在執行這項指令前,先確認目錄不存在。

  2. 您可以選擇為存放區設定預設名稱:

    ffx repository default set <REPO_NAME>
    

    REPO_NAME 替換為存放區的名稱。

    下列範例指令會將 my-repo 設為預設存放區:

    ffx repository default set my-repo
    

    由於 ffx 的建構目錄層級設定會包含正確的值,因此通常不需要這麼做。

    設定預設存放區後,這個指令會靜默退出,不會顯示任何輸出內容。

啟動 Fuchsia 套件伺服器

如要在主機上提供 Fuchsia 套件存放區的套件,Fuchsia 套件伺服器必須在機器上執行。

如要啟動 Fuchsia 套件伺服器,請執行下列指令:

ffx repository server start --foreground  --repo-path <REPO_PATH>

這項操作會在前景啟動套件伺服器。記錄訊息會隨即顯示 。

或者,您也可以使用 --background 標記,在背景啟動伺服器。在這種情況下,記錄訊息會顯示在 ${log.dir}/repo-REPO_NAME.log

如需其他選項,請參閱「啟動套件伺服器」。

根據產品套裝組合啟動套件伺服器

如果您需要從現有產品套裝組合中提供套裝方案,產品 下載套裝組合,並使用產品套裝組合啟動套件伺服器。

  1. 如要查看可用產品清單,請執行下列指令:

    ffx product list
    
  2. 如要下載想要的產品套裝組合,請執行下列指令:

    ffx product download <PRODUCT> <DOWNLOAD_DIR>
    

    以所需產品取代 PRODUCTDOWNLOAD_DIR,並下載 目錄中:

    ffx product download core.x64 ~/Downloads/product-bundles/
    
  3. 如要啟動 Fuchsia 套件伺服器,請執行下列指令:

    ffx repository server start --background --product-bundle <DOWNLOAD_DIR>
    

    請更改下列內容:

    • DOWNLOAD_DIR:是包含產品套裝組合的目錄。您可以透過 _DOWNLOADDIR/product.bundle.json 的存在,確認該目錄是否為產品套件目錄。

    如需更多選項,請參閱「啟動套件伺服器」。

將套件存放區註冊至 Fuchsia 裝置

套件伺服器執行後,您必須在 目標裝置。

  1. 讓 Fuchsia 裝置連線至新存放區:

    ffx target repository register [-r <REPO_NAME>] --alias fuchsia.com --alias chromium.org
    

    REPO_NAME 替換為要指定的存放區名稱 要連線的 Fuchsia 裝置。如果未指定這個標記,則指令 會選取預設存放區

    以下範例會將目前的 Fuchsia 裝置設為連線至 fuchsia.com 中的預設存放區 (my-repo):

    $ ffx target repository register --alias fuchsia.com --alias chromium.org
    

    註冊存放區後,這個指令會在沒有輸出的情況下結束,不顯示任何訊息。

  2. 確認新存放區是否已註冊:

    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 替換為註冊存放區的名稱。如果這個標記是 如未指定,指令會選取預設存放區。

下列範例指令會註銷 my-repo 存放區:

$ ffx target repository deregister -r my-repo

停止 Fuchsia 套件伺服器

如要停止 Fuchsia 套件伺服器,請執行下列指令:

ffx repository server stop

這個指令會輸出類似以下的輸出內容:

$ ffx repository server stop
server stopped

如需更多選項,請參閱: 停止執行套件伺服器

為已淘汰的 daemon 型伺服器建立套件存放區

如要在主機上建立新的 Fuchsia 套件存放區, :

  1. 建立新的存放區:

    ffx repository create <REPO_PATH>
    

    其中 REPO_PATH 是新存放區的目錄路徑。 注意:系統並不會檢查該目錄中現有的內容,因此已 建議您先檢查該目錄不存在,再執行 這個指令

  2. 將新存放區新增至 ffx 設定:

    ffx repository add-from-pm <PM_REPO_PATH> [-r <REPO_NAME>]
    

    更改下列內容:

    • PM_REPO_PATH:Fuchsia 套件儲存的目錄路徑。
    • REPO_NAME:新存放區的使用者定義名稱。
      • 如未指定此標記,則指令會預設為將新存放區命名為 devhost

    下方的範例指令會建立新的存放區,並使用 名稱 my-repo

    $ ffx repository create ~/my-fuchsia-packages
    $ ffx repository add-from-pm ~/my-fuchsia-packages -r my-repo
    

    建立新的存放區後,這個指令會在沒有輸出的情況下結束,且不發出任何通知。

  3. 確認新存放區是否已建立:

    ffx repository list
    

    這個指令會輸出類似以下的輸出內容:

    $ ffx repository list
    NAME                TYPE       ALIASES     EXTRA
    my-repo             pm                     /usr/alice/my-fuchsia-packages
    
  4. 您可以選擇將新的存放區設為預設:

    ffx repository default set <REPO_NAME>
    

    REPO_NAME 替換為存放區的名稱。

    下列範例指令會將 my-repo 設為預設存放區:

    $ ffx repository default set my-repo
    

    由於 ffx 的建構目錄層級設定會包含正確的值,因此通常不需要這麼做。

    設定預設存放區後,這個指令會在沒有輸出的情況下結束,不顯示任何訊息。

    可讓 Fuchsia 裝置統計資料,透過這個新功能下載 Fuchsia 套件 您需要 將這個存放區註冊到裝置

將套件存放區註冊至 Fuchsia 裝置

如要讓 Fuchsia 裝置從主機上的 Fuchsia 套件存放區下載套件,請執行下列操作:

  1. 讓 Fuchsia 裝置連線至新存放區:

    ffx target repository register [-r <REPO_NAME>] --alias fuchsia.com --alias chromium.org
    

    REPO_NAME 替換為您要讓 Fuchsia 裝置連線的存放區名稱。如未指定此旗標,指令會選取預設存放區。

    以下範例會將目前的 Fuchsia 裝置設為連線至 fuchsia.com 中的預設存放區 (my-repo):

    $ ffx target repository register --alias fuchsia.com --alias chromium.org
    

    註冊存放區後,這個指令會在沒有輸出的情況下結束,不顯示任何訊息。

  2. 確認新存放區是否已註冊:

    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 替換為註冊存放區的名稱。如果這個標記是 如未指定,指令會選取預設存放區。

下列範例指令會取消註冊 my-repo 存放區:

$ ffx target repository deregister -r my-repo

註銷存放區後,這個指令會以無輸出的方式結束。

移除套件存放區

如要移除 Fuchsia 套件存放區,請執行下列指令:

ffx repository remove <REPO_NAME>

REPO_NAME 替換為存放區的名稱。

下列範例指令會移除 my-repo 存放區:

$ ffx repository remove my-repo

移除存放區後,這個指令會直接結束,不會顯示任何輸出內容。

啟動 Fuchsia 套件伺服器

如要在主機上提供 Fuchsia 套件存放區的套件,Fuchsia 套件伺服器必須在機器上執行。

如要啟動 Fuchsia 套件伺服器,請執行下列指令:

ffx repository server start --daemon

這個指令會輸出類似以下的輸出內容:

$ ffx repository server start --daemon
server is listening on [::]:8083

如需更多選項,請參閱「啟動套件伺服器」。

停止 Fuchsia 套件伺服器

如要停止 Fuchsia 套件伺服器,請執行下列指令:

ffx repository server stop

這個指令會輸出類似以下的內容:

$ ffx repository server stop
server stopped

如需其他選項,請參閱「停止執行套件伺服器」。