總覽
基本上,在 Fuchsia 上執行的所有軟體都會收集到 Fuchsia 套件中。
Fuchsia 套件是一個階層 內含一或多個程式、元件或服務的一組檔案 導入 Fuchsia 系統。Fuchsia 套裝方案是代表 與其他許多套件系統不同 並非單一二進位 BLOB。
除了構成 Fuchsia 平台基礎套件的基本套件外, 其他套件可從 Fuchsia 套件伺服器下載。紫紅色 套件伺服器為 HTTP(S) 伺服器,使用 TUF 管理 Fuchsia 套件 ( 更新架構)。這個架構會使用經過加密編譯的 BLOB , 將更新套件安全地發布至執行 Fuchsia 的裝置。
針對使用 Fuchsia 的開發人員,系統會提供套件伺服器 協助使用可做為產品基礎的套件 也能在開發週期內疊加本機編譯的套件。
啟動套件伺服器
系統會執行
ffx repository server
。這個伺服器會處理
要求取得可用套件的中繼資料,並傳送檔案 blob
組成套件內容的組成部分
基本指令
ffx repository server start
伺服器選項
--address
套件伺服器針對要求監聽的位址。格式
可以是 IPv4 或 IPv6 位址。例如:
[::]:8083
或 127.0.0.1:8083
。一直以來,
套件伺服器為 8083
。但為了讓彈性更大,
將預設通訊埠 0
設為使用動態通訊埠。地址
執行 ffx repository server list
即可查看執行中的存放區伺服器。
沒有任何設定屬性會影響位址選項。這個 無法設定這個選項,因為多個伺服器的通訊埠號碼必須 不得重複
改用動態連接埠的動機是避免使用通訊埠 發生錯誤。使用本機連線的裝置在本機執行套件伺服器時 ffx 可以在內部管理套件伺服器的位址。
但是在某些情況下,使用特定的網路位址時 以根據目標裝置的網路連線進行套件。舉例來說 通道或防火牆設定需要非 ffx 指令 需要通訊埠才能配合其他工具中的設定
--background
、--daemon
、--foreground
套件伺服器的執行模式。這些選項互斥,無法並用。 一次只能使用一種執行模式。
--background
表示系統將在 背景。且與--foreground
和--daemon
互斥。--daemon
表示套件伺服器將在 ffx 中啟動 Daemon此模式應視為已淘汰,只有在使用 不得使用--background
或--foreground
。在此之前 移除完成,--daemon
為預設模式,可確保回溯 相容性。 注意:如果必須使用--daemon
,請回報問題並解釋 因此修正套件伺服器問題。--foreground
表示會在前景啟動套件伺服器。 且與--background
和--daemon
互斥。
沒有任何設定屬性會影響執行模式。 套件伺服器執行模式是眾多 開發人員工作流程相關問題
開發人員會根據 UI 上的個別情況,套用不同的偏好設定 位於前景或背景的套件伺服器。伺服器行為是 兩者完全相同。
這些是特定的外接切換裝置,有些是提供列舉值的選項,方便相關人員進行深入分析 透過指令列分析收集而來在 Analytics 中 選項的值則無。
由於透過 SDK 的預設行為是執行以 Daemon 為基礎的套件伺服器, 這目前是預設值套件伺服器正在遷移至 將前景設定為預設,因此可清楚知道套件伺服器 這是最簡化的執行模型
背景是適合遠端工作流程的理想模式,因此可採用遠距方式 終端機視窗,以及 IDE 等 IDE,表示 切換多個終端機視窗並不容易。
--repo-name
依名稱識別套件伺服器。如果其他套件伺服器 以相同名稱執行作業,新的套件伺服器將會失敗並顯示錯誤。
預設值為 devhost。主要為歷史因素。
沒有任何設定屬性影響 repo-name
;伺服器名稱
不得重複
在 --daemon
模式下,由於存放區受到代管,因此無法使用這個選項
即可使用其他指令,例如 ffx repository add-from-pm
--repo-path
存放區根目錄的路徑。
這個目錄可以是透過 ffx repository create
初始化的存放區,或
加入產品組合的根目錄
預設值為未定義,但可自行設定。
您可以設定設定屬性 package.repository.path
。這是
複製到存放區的根目錄應該已設定此值
單一專案和使用者層級的資料,因為每項專案可能會有不同的
Cloud Storage 也提供目錄同步處理功能
同時為其他套件指定此設定屬性也有幫助
ffx repository publish
等存放區工具使用相同的存放區路徑
做為套件伺服器
這個值又稱為發布工具,代表 一些特性
由於存放區是由代管,因此 --daemon
模式不允許使用這個選項
即可使用其他指令,例如 ffx repository add-from-pm
--trusted-root
用來簽署存放區 TUF 中繼資料的根中繼資料路徑。
這會建立這個存放區的信任根。如果 TUF 中繼資料之前為 並未由此根中繼資料簽署,執行這項指令就會發生錯誤。 預設值為使用存放區中的 1.root.json。
沒有任何設定屬性會影響 --trusted-root
。
開發人員很少使用這個選項。
註冊選項
這些選項可以影響目標裝置上的伺服器註冊。 套件伺服器可以自行註冊 開發裝置的功能下列選項會影響這項註冊行為。
--no-device
停用目標裝置上的伺服器自動註冊功能。
僅適用於 --foreground
和 --background
。
這個標記最常在與多部裝置共用的情況下使用 和預設行為發生錯誤這也很實用 。
為簡化套件放送程序,這個選項將成為 預設或註冊完全移除此時,系統會自動 註冊工作流程會整合到其他指令中
--alias
識別這個存放區的套件網域別名。
在目標裝置上註冊套件伺服器時,系統會使用這個符號,
設定重新寫入規則,將個別 alias
網域對應至這個伺服器。別名是
執行 ffx repository server list
列出的步驟,用來執行存放區
只有在無法確認哪一個套件伺服器不明時,才應使用這個方法 應用於解析套件。
預設值是沒有任何別名。
沒有任何設定屬性影響 --alias
。
這通常用於處理會產生 這個套件必須位於「fuchsia.com」中或「chromium.org」網域,但不是 為投入式專案的一部分
--alias-conflict-mode
定義別名註冊衝突時的解析機制。
必須是 error-out
或 replace
。
預設行為為 replace
。
沒有任何設定屬性影響 --alias-conflict-mode
。
--storage-type
針對使用這項註冊作業解析的套件,定義其儲存空間類型。
persistent
定義套件會在重新啟動後保留。另外
ephemeral
定義套件在重新啟動時會遺失。
預設為 ephemeral
。
沒有任何設定屬性影響 --storage-type
。
目標裝置有時會需要重新啟動並保持更新狀態 而不要還原至上次 Flash 或 OTA 中的更新。 使用在測試期間使用的套件時,這項功能特別實用 啟動程序。
範例
啟動樹狀結構內存放區
如要瞭解選項,請參閱 fx 放送參考資料。裝置
實作練習,ffx repository server start
就會執行。
fx serve
使用 VSCode (單一終端機視窗) 時啟動存放區
ffx repository server start --background
或樹狀結構內
fx serve --background