This guide provides instructions on how to download the Fuchsia source code and set up the Fuchsia development environment on your machine.
The steps are:
- Perform a preflight check.
- Install prerequisite packages.
- Download the Fuchsia source code.
- Set up environment variables.
- Configure firewall rules (Optional).
1. Perform a preflight check
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.
Run the following command:
curl -sO https://storage.googleapis.com/fuchsia-ffx/ffx-linux-x64 && chmod +x ffx-linux-x64 && ./ffx-linux-x64 platform preflight
curl -sO https://storage.googleapis.com/fuchsia-ffx/ffx-macos-x64 && chmod +x ffx-macos-x64 && ./ffx-macos-x64 platform preflight
2. Install prerequisite packages
git to be up to date. The version
git needs to be 2.28 or higher.
Install (or update) the following packages:
sudo apt-get install curl git unzip
Install the Xcode command line tools:
3. Download the Fuchsia source code
Fuchsia provides a bootstrap script that creates a
fuchsia and downloads the Fuchsia source code in that
To download the Fuchsia source, do the following:
Select a directory for downloading the Fuchsia source code, for example:
Run the bootstrap script:
curl -s "https://fuchsia.googlesource.com/fuchsia/+/HEAD/scripts/bootstrap?format=TEXT" | base64 --decode | bash
This script creates the
fuchsiadirectory and downloads the source code.
If you see the
Invalid authentication credentialserror during the bootstrapping process, see Authentication error for help.
4. Set up environment variables
Fuchsia recommends that you update your shell profile to include the following actions:
.jiri_root/bindirectory to your
.jiri_root/bindirectory in the Fuchsia source contains the
fxtools that are essential to Fuchsia workflows. Fuchsia uses the
jiritool to manage repositories in the Fuchsia project, and the
fxtool helps configure, build, run, and debug Fuchsia. The Fuchsia toolchain requires that
jiriis available in your
Though it's not required, sourcing the
fx-env.shscript enables a number of useful shell functions in your terminal. For instance, it creates the
FUCHSIA_DIRenvironment variable and provides the
fdcommand for navigating directories with auto-completion. For more information, see comments in
To update your shell profile to configure Fuchsia's environment variables, do the following:
Use a text editor to open your
~/.bash_profilefile. In our below example we use nano):
Add the following lines to your
export PATH=~/fuchsia/.jiri_root/bin:$PATH source ~/fuchsia/scripts/fx-env.sh
Save the file and exit the text editor.
To update your environment variables, run the following command:
Verify that you can run the following commands inside your
fuchsiadirectory without error:
5. Configure firewall rules (Optional)
If you're planning on running Fuchsia on Linux, it is advised to run the following command to ensure that Fuchsia device and emulator traffic is allowed:
This script requires
sudo to run successfully, and will ask for your password
in order to set the appropriate firewall rules to permit Fuchsia-specific traffic.
For more information on
fx setup-ufw, see
To build your first Fuchsia system image, see Configure and build Fuchsia.
If you see the
Invalid authentication credentials error during the bootstrap
~/.gitcookies file may contain cookies from some repositories in
googlesource.com that the bootstrap script wants to check out anonymously.
To resolve this error, do one of the following:
- Follow the onscreen directions to get passwords for the specified repositories.
- Delete the offending cookies from the
Work on Fuchsia without updating your PATH
The following sections provide alternative approaches to the Set up environment variables section:
Copy the tool to your binary directory
If you don't wish to update your environment variables, but you want
work in any directory, copy the
jiri tool to your
~/bin directory, for
cp ~/fuchsia/.jiri_root/bin/jiri ~/bin
However, you must have write access to the
~/bin directory without
jiri cannot keep itself up-to-date.
Add a symlink to your binary directory
Similarly, if you want to use the
fx tool without updating your environment
variables, provide the
fx tool's symlink in your
~/bin directory, for
ln -s ~/fuchsia/scripts/fx ~/bin
Alternatively, run the
fx tool directly using its path, for example:
In either case, you need
jiri in your