本指南介绍如何下载 Fuchsia 源代码并在计算机上设置 Fuchsia 开发环境。
具体步骤如下:
1. 安装必备软件包
Fuchsia 要求 curl
、file
、unzip
和 git
为最新版本。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 的空间(具体取决于您的 build 配置)。此外,下载过程会使用大量内存。建议在此期间关闭非关键进程。
如需下载 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
目录包含对 Fuchsia 工作流至关重要的jiri
和fx
工具。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
目录,例如:cd ~/fuchsia
验证您能否顺利运行以下命令:
jiri help
fx help
5. 配置防火墙规则(可选)
运行以下命令可允许在宿主机上处理特定于 Fuchsia 的流量:
fx setup-ufw
此脚本需要 sudo
(要求输入密码)设置相应的防火墙规则。(如需详细了解此脚本,请参阅 setup-ufw
。)
后续步骤
如需构建您的第一个 Fuchsia 系统映像,请参阅配置和构建 Fuchsia。
附录
身份验证错误
如果您在引导过程中看到 Invalid authentication credentials
错误,则您的 ~/.gitcookies
文件可能包含 googlesource.com
中某些代码库中的 Cookie,而引导脚本希望以匿名方式检出这些 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
无论是哪种情况,您都需要在 PATH
中添加 jiri
。