下载 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. 运行引导加载程序脚本:

    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 建议您更新 shell 配置文件以执行以下操作:

  • .jiri_root/bin 目录添加到 PATH

    Fuchsia 源代码中的 .jiri_root/bin 目录包含 jirifx 工具,这些工具对 Fuchsia 工作流至关重要。Fuchsia 使用 jiri 工具管理 Fuchsia 项目中的代码库,fx 工具可帮助配置、构建、运行和调试 Fuchsia。Fuchsia 工具链要求 PATH 中具有 jiri

  • 获取 scripts/fx-env.sh 文件的来源。

    通过获取 fx-env.sh 脚本,您可以在终端中启用许多实用的 shell 函数,不过这并非强制性要求。例如,它会创建 FUCHSIA_DIR 环境变量,并提供 fd 命令,以便使用自动补全功能浏览目录。(如需了解详情,请参阅 fx-env.sh 中的注释。)

如需更新 shell 配置文件以配置 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。

如需解决此错误,请执行以下某项操作:

  • 按照屏幕上的说明获取指定代码库的密码。
  • .gitcookies 文件中删除违规 Cookie。

无需更新 PATH 即可处理 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