The following steps can be used to manually install Asylo and its dependencies. The manual installation process and Docker image creation process have both primarily been tested on Debian Buster, but may also be used to install Asylo on other Linux distros and versions.
See the README.md for instructions on Docker usage, which is our recommended way of using the Asylo framework.
Clone the Asylo project from GitHub into a directory of your choice.
ASYLO="${HOME}"/asylo
git clone https://github.com/google/asylo.git "${ASYLO}"/sdk
The Asylo framework uses a custom toolchain to compile enclave applications for
various backend environments. For example, to build your application for a
simulated enclave backend, use the enc-sim
config. We plan to support
additional backends in the near future.
bazel build --config=enc-sim :my_app
You can manually install the toolchain by following these steps:
-
Download and install the following prerequisites, which are needed for building the toolchain:
- bison
- build-essential
- flex
- libisl-dev
- libmpc-dev
- libmpfr-dev
- rsync
- texinfo
- wget
- zlib1g-dev
For example, on Debian:
sudo apt-get install bison build-essential flex libisl-dev libmpc-dev \ libmpfr-dev rsync texinfo wget zlib1g-dev
-
Build and install the toolchain.
"${ASYLO}"/sdk/asylo/distrib/sgx_x86_64/install-toolchain \ --user \ --prefix "${ASYLO}"/toolchains/sgx_x86_64
This will install the toolchain under
"${ASYLO}"/toolchains/sgx_x84_64
See distrib/README.md for additional details on installing the toolchain.
The Asylo framework uses Intel SGX SDK v1.9 with a patch that backports some pull requests and applies minor changes needed to build the SDK with the Asylo toolchain.
The Asylo framework is built with Bazel, Google's open source build tool.
You can manually install Bazel by following these steps:
sudo apt-get install curl gnupg
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
echo "deb http://storage.googleapis.com/bazel-apt stable jdk1.8" | \
sudo tee /etc/apt/sources.list.d/bazel.list
sudo apt-get update
sudo apt-get install bazel openjdk-8-jdk-headless
The following packages are used by Asylo and its dependencies, and must also be installed.
- ocaml-nox
- ocamlbuild
- python-jinja2
On Debian, these can be installed with the following command:
sudo apt-get install \
build-essential \
ocaml-nox \
ocamlbuild \
python-jinja2
Refer to the project README for using this Asylo installation.