下載 Fuchsia 原始碼

本指南提供下載 Fuchsia 原始碼,以及在電腦上設定 Fuchsia 開發環境的操作說明。

步驟如下:

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

1. 安裝必要套件

Fuchsia 需要 curlfileunzipgit 為最新版本。git 版本必須為 2.31 以上。

安裝 (或更新) 下列套件:

sudo apt install curl file git unzip

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 提供引導程式碼,可建立名為 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 錯誤,請參閱「驗證錯誤」一節。

    如果網際網路連線速度較慢,且發生逾時情形,建議您直接下載 Bootstrap 指令碼,並提高 -fetch-packages-timeout-hook-timeout 的值。這些逾時時間以分鐘為單位,表示套件下載作業的逾時時間為 2 小時。(下載 CIPD 套件時,-hook-timeout 值會乘以 5)。

4. 設定環境變數

Fuchsia 建議您更新殼層設定檔,納入下列動作:

  • .jiri_root/bin 目錄新增至 PATH

    Fuchsia 來源中的 .jiri_root/bin 目錄包含 jirifx 工具,這些工具對 Fuchsia 工作流程至關重要。Fuchsia 會使用 jiri 工具管理 Fuchsia 專案中的存放區,而 fx 工具則可協助設定、建構、執行及偵錯 Fuchsia。Fuchsia 工具鏈要求 jiri 必須在 PATH 中提供。

  • 來源 scripts/fx-env.sh 檔案。

    雖然這不是必要做法,但來源 fx-env.sh 指令碼可在終端機中啟用許多實用的 shell 函式。舉例來說,它會建立 FUCHSIA_DIR 環境變數,並提供 fd 指令,讓您透過自動完成功能瀏覽目錄。(詳情請參閱 fx-env.sh 中的註解)。

如要更新殼層設定檔以設定 Fuchsia 的環境變數,請執行下列操作:

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

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

    export PATH=~/fuchsia/.jiri_root/bin:$PATH
    source ~/fuchsia/scripts/fx-env.sh
    
  3. 儲存檔案並結束文字編輯器。

  4. 如要更新環境變數,請執行下列指令:

    source ~/.bash_profile
    
  5. 驗證環境設定:

    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,而引導程序指令碼想要匿名檢查這些 Cookie。

如要解決這個錯誤,請按照下列其中一種做法進行:

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

在不更新路徑的情況下使用 Fuchsia

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

將工具複製到二進位檔目錄

如果您不想更新環境變數,但希望 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