下载 Fuchsia 源代码

本指南提供了有关如何在您的机器上下载 Fuchsia 源代码并设置 Fuchsia 开发环境的说明。

具体步骤如下:

  1. 安装必备软件包
  2. 执行预检检查
  3. 下载 Fuchsia 源代码
  4. 设置环境变量
  5. 配置防火墙规则(可选)

1. 安装必备软件包

Fuchsia 要求 curlfileunzipgit 保持最新。 git 的版本需要为 2.31 或更高版本。

如需安装或更新这些软件包,请运行以下命令:

sudo apt install curl file git unzip

可选)如果您想运行Fuchsia 模拟器 (FEMU), 请考虑先完成以下额外步骤,然后再继续 下一部分:

2. 执行预检检查

Fuchsia provides a preflight check tool (ffx platform preflight) that examines your machine and informs you of any issues that may affect building Fuchsia from source on the machine.

如需执行预检检查,请运行以下命令:

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. 运行引导脚本以创建 fuchsia 目录并下载源代码:

    步骤

    1. 下载并解码脚本:

      curl -s "https://fuchsia.googlesource.com/fuchsia/+/HEAD/scripts/bootstrap?format=TEXT" | base64 --decode > bootstrap.sh
    2. (推荐)验证 bootstrap.sh 脚本的内容。

    3. 运行脚本:

      bash bootstrap.sh

    单行命令

    如果您希望在单个命令中运行该脚本,可以使用以下命令:

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

    如果您在 引导过程中看到 Invalid authentication credentials 错误,请参阅身份验证错误以获取 帮助。

4. 设置环境变量

如需在 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
    
    • Fuchsia 源代码中的 .jiri_root/bin 目录包含对 Fuchsia 工作流至关重要的 jirifx 工具。Fuchsia 使用 jiri 工具来管理 Fuchsia 项目中的代码库,而 fx 工具则有助于配置、构建、运行和调试 Fuchsia。Fuchsia 工具链要求 jiri 在您的 PATH 中可用。

    • fx-env.sh 脚本可在您的终端中启用许多 实用的 shell 函数。例如,它会创建 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。

在不更新 PATH 的情况下使用 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

无论哪种情况,您都需要 jiri 在您的 PATH 中。

启用 KVM 加速

仅限 Linux )大多数 Linux 机器都支持通过 KVM 进行虚拟机加速,这大大提高了模拟器的性能和可用性。

如果您的机器上提供 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