建立 Fuchsia 套件存放區

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

概念

當 Fuchsia 裝置需要執行新軟體或更新現有軟體時,裝置會向 Fuchsia 套件伺服器要求並下載 Fuchsia 套件,這項服務可讓您在主體電腦上啟動及停止使用這項服務。接著,Fuchsia 套件伺服器會從主體機器設定的 Fuchsia 套件存放區提供 Fuchsia 套件。

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

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

最後,您可以設定 Fuchsia 套件伺服器,從同一部主機機器上的多個 Fuchsia 套件存放區提供服務,在該套件中,您可以針對特定用途提供各個套件存放區 (例如將穩定版套件和實驗套件分開)。

建立套件存放區

如要在主機上建立新的 Fuchsia 套件存放區,請按照下列步驟操作:

  1. 建立新的存放區:

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

    更改下列內容:

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

    以下範例指令會建立名為 my-repo 的新存放區:

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

    建立新的存放區後,這個指令會在沒有輸出內容的情況下結束。

  2. 確認已建立新的存放區:

    ffx repository list
    

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

    $ ffx repository list
    +----------+------+--------------------------------------------------------+
    | NAME     | TYPE | EXTRA                                                  |
    +==========+======+========================================================+
    | my-repo* | pm   | /usr/alice/my-fuchsia-packages                         |
    +----------+------+--------------------------------------------------------+
    
  3. 將新存放區設為預設存放區:

    ffx repository default set <REPO_NAME>
    

    REPO_NAME 替換為存放區的名稱。

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

    $ ffx repository default set my-repo
    

    設定預設存放區後,這個指令會在沒有輸出內容的情況下結束。

    為了讓 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    | TARGET                 |
    +=========+========================+
    | my-repo | fuchsia-f80f-f974-a123 |
    |         |   alias: chromium.org  |
    |         |   alias: fuchsia.com   |
    +---------+------------------------+
    

取消註冊套件存放區

如要從裝置取消註冊 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

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

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

停止 Fuchsia 套件伺服器

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

ffx repository server stop

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

$ ffx repository server stop
server stopped