本指南介绍了如何下载 Fuchsia 源代码并在机器上设置 Fuchsia 开发环境。
相关步骤如下:
1. 安装必备软件包
Fuchsia 要求 curl
、file
、unzip
和 git
是最新版本。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 源代码,请执行以下操作:
选择用于下载 Fuchsia 源代码的目录,例如:
cd $HOME
运行引导加载程序脚本:
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
目录包含jiri
和fx
工具,这些工具对 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 的环境变量,请执行以下操作:
使用文本编辑器打开您的
~/.bash_profile
文件(在下面的示例中,我们使用了 Nano 文本编辑器):nano ~/.bash_profile
将以下代码行添加到
~/.bash_profile
文件中:export PATH=~/fuchsia/.jiri_root/bin:$PATH source ~/fuchsia/scripts/fx-env.sh
保存文件并退出文本编辑器。
如需更新环境变量,请运行以下命令:
source ~/.bash_profile
验证您能否在
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
。