下載 Fuchsia 原始碼

本指南提供操作說明,協助您下載 Fuchsia 原始碼,並在本機上設定 Fuchsia 開發環境。

步驟如下:

  1. 安裝必要套件
  2. 執行預檢
  3. 下載 Fuchsia 原始碼
  4. 設定環境變數
  5. 設定防火牆規則 (選用)

1. 安裝必要套件

Fuchsia 必須使用最新版本的 curlfileunzipgitgit 版本必須為 2.31 以上。

如要安裝或更新這些套件,請執行下列指令:

sudo apt install curl file git unzip

(選用) 如要執行 Fuchsia 模擬器 (FEMU),請考慮先完成下列額外步驟,再繼續進行下一節:

2. 執行預檢

Fuchsia 提供前置檢查工具 (ffx platform preflight),可檢查您的電腦,並告知您可能影響在電腦上從來源建構 Fuchsia 的任何問題。

如要執行預檢,請執行下列指令:

curl -sO https://storage.googleapis.com/fuchsia-ffx/ffx-linux-x64 && chmod +x ffx-linux-x64 && ./ffx-linux-x64 platform preflight

3. 下載 Fuchsia 原始碼

Fuchsia bootstrap 指令碼會建立名為 fuchsia 的目錄,並下載 Fuchsia 原始碼。

下載 Fuchsia 原始碼需要約 2 GB 的空間。視建構設定而定,您稍後建構 Fuchsia 時,還需要 80 到 90 GB 的空間。此外,下載程序會耗用大量記憶體。建議您在這段期間關閉非重要程序。

如要下載 Fuchsia 來源,請按照下列步驟操作:

  1. 選取要下載 Fuchsia 原始碼的目錄,例如:

    cd $HOME
  2. 執行啟動指令碼:

    curl -s "https://fuchsia.googlesource.com/fuchsia/+/HEAD/scripts/bootstrap?format=TEXT" | base64 --decode | bash

    這個指令碼會建立 fuchsia 目錄並下載原始碼。

    如果在啟動程序中看到 Invalid authentication credentials 錯誤,請參閱「驗證錯誤」一文尋求協助。

    如果網際網路連線速度較慢,且發生逾時問題,建議直接下載啟動程序指令碼,並增加 -fetch-packages-timeout-hook-timeout 的值。這些逾時時間以分鐘為單位,表示套件下載的逾時時間為 2 小時。(下載 CIPD 套件時,-hook-timeout 值會乘以 5)。

4. 設定環境變數

如要在殼層設定建議的 Fuchsia 環境變數,請執行下列操作:

  1. 使用文字編輯器開啟 ~/.bash_profile 檔案 (在下列範例中,我們使用 Nano 文字編輯器):

    nano ~/.bash_profile
  2. ~/.bash_profile 檔案中新增下列程式碼:

    export PATH=~/fuchsia/.jiri_root/bin:$PATH
    source ~/fuchsia/scripts/fx-env.sh
    
    • Fuchsia 來源中的 .jiri_root/bin 目錄包含 jirifx 工具,這些工具是 Fuchsia 工作流程的必要項目。Fuchsia 會使用 jiri 工具管理 Fuchsia 專案中的存放區,而 fx 工具則可協助設定、建構、執行及偵錯 Fuchsia。Fuchsia 工具鍊需要 jiri 位於 PATH 中。

    • fx-env.sh 指令碼會在終端機中啟用多項實用的殼層函式。舉例來說,它會建立 FUCHSIA_DIR 環境變數,並提供 fd 指令,方便您使用自動完成功能瀏覽目錄。(詳情請參閱 fx-env.sh 中的註解)。

  3. 儲存檔案並結束文字編輯器。

  4. 更新環境變數:

    source ~/.bash_profile

如要驗證環境設定,請按照下列步驟操作:

  1. 前往 fuchsia 目錄,例如:

    cd ~/fuchsia
  2. 確認您可以執行下列指令,且不會發生錯誤:

    jiri help
    fx help

5. 設定防火牆規則 (選用)

如要在主機上允許 Fuchsia 專屬流量,請執行下列指令:

fx setup-ufw

這個指令碼需要 sudo (會要求您輸入密碼) 才能設定適當的防火牆規則。如要進一步瞭解這項指令碼,請參閱 setup-ufw

後續步驟

如要建構第一個 Fuchsia 系統映像檔,請參閱「設定及建構 Fuchsia」。

附錄

驗證錯誤

如果在啟動程序期間看到 Invalid authentication credentials 錯誤,可能是因為 ~/.gitcookies 檔案含有來自 googlesource.com 中某些存放區的 Cookie,而啟動指令碼想匿名簽出這些存放區。

如要解決這項錯誤,請執行下列任一操作:

  • 按照畫面上的指示,取得指定存放區的密碼。
  • .gitcookies 檔案中刪除違規 Cookie。

在 Fuchsia 上工作,不必更新 PATH

下列各節提供「設定環境變數」一節的替代方法:

將工具複製到二進位目錄

如果不想更新環境變數,但希望 jiri 能在任何目錄中運作,請將 jiri 工具複製到 ~/bin 目錄,例如:

cp ~/fuchsia/.jiri_root/bin/jiri ~/bin

不過,您必須具備 ~/bin 目錄的寫入權限,但不能有 sudo。如果沒有,jiri 就無法保持在最新狀態。

同樣地,如要使用 fx 工具,但不想更新環境變數,請在 ~/bin 目錄中提供 fx 工具的符號連結,例如:

ln -s ~/fuchsia/scripts/fx ~/bin

或者,您也可以直接使用路徑執行 fx 工具,例如:

./scripts/fx help

無論是哪種情況,您都需要在 PATH 中加入 jiri

啟用 KVM 加速功能

(僅限 Linux) 大多數 Linux 電腦都支援透過 KVM 進行 VM 加速,可大幅提升模擬器的效能和可用性。

如果機器上提供 KVM,請將自己加入 kvm 群組:

sudo usermod -a -G kvm ${USER}

你可能需要登出再重新登入,這項變更才會生效。

設定模擬器網路

(僅限 Linux) 如要允許 Fuchsia 模擬器 (FEMU) 存取網路,可以使用 TUN/TAP 設定 IPv6 網路。

如要使用 tap 網路啟用網路,請按照下列步驟操作:

  1. 設定「tuntap」:

    sudo ip tuntap add dev qemu mode tap user $USER
  2. 為「qemu」啟用網路:

    sudo ip link set qemu up