下載 Fuchsia 原始碼

本指南說明如何在電腦上下載 Fuchsia 原始碼,以及在電腦上設定 Fuchsia 開發環境。

步驟如下:

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

1. 安裝必要套件

Fuchsia 需要 curlfileunzipgit 更新至最新版本。git 的版本需為 2.31 以上。

Linux

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

sudo apt install curl file git unzip

macOS

安裝 Xcode 指令列工具:

xcode-select --install

2. 執行預檢

Fuchsia 提供預檢工具 (ffx platform preflight),可檢查你的機器,並在發現任何會影響機器來源建構 Fuchsia 的問題時通知你。

執行下列指令:

Linux

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

macOS

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

3. 下載 Fuchsia 原始碼

Fuchsia 提供啟動指令碼,可建立名為 fuchsia 的目錄,並在該目錄下載 Fuchsia 原始碼。

下載 Fuchsia 原始碼需要約 2 GB 的機器空間。視您的建構設定而定,之後建構 Fuchsia 時,會需要另一組 80 至 90 GB 的空間。此外,下載程序會使用大量記憶體。在這段期間內,能夠關閉非關鍵程序。

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

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

    cd $HOME
    
  2. 執行 bootstrap 指令碼:

    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 目錄包含 Fuchsia 工作流程必備的 jirifx 工具。Fuchsia 使用 jiri 工具管理 Fuchsia 專案中的存放區,而 fx 工具則可協助您設定、建構、執行及偵錯 Fuchsia。Fuchsia 工具鍊需要 PATH 中的 jiri

  • 取得 scripts/fx-env.sh 檔案。

    雖然這並非必要步驟,但只要取得 fx-env.sh 指令碼,即可在終端機中啟用許多實用的殼層函式。舉例來說,它會建立 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. 確認您可以在 fuchsia 目錄中執行下列指令,而不發生錯誤:

    jiri help
    
    fx help
    

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

(僅限 Linux) 如果您計劃在 Linux 上執行 Fuchsia,建議執行下列指令,允許 Fuchsia 在主機上執行流量:

fx setup-ufw

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

後續步驟

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

附錄

驗證錯誤

如果您在啟動程序期間看到 Invalid authentication credentials 錯誤,則 ~/.gitcookies 檔案可能包含 googlesource.com 中部分存放區的 Cookie,而該 Bootstrap 指令碼想要匿名查看。

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

  • 依照螢幕上的指示取得指定存放區的密碼。
  • .gitcookies 檔案中刪除違規的 Cookie。

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

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

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

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

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

不過,您必須擁有沒有 sudo~/bin 目錄寫入權限。如果不這麼做,jiri 就無法自行更新至最新版本。

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

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

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

./scripts/fx help

不論是哪一種情況,PATH 中都需要使用 jiri