153 lines
6.2 KiB
Markdown
153 lines
6.2 KiB
Markdown
# Occlum Installer
|
|
|
|
To evaluate Occlum in non-docker environment, installers are needed. Occlum provides a variety of installers to support different scenarios. Users can choose to install different minimum subsets of Occlum installers to meet their needs.
|
|
|
|
- **occlum-runtime**: necessary binaries for `occlum run/exec`. For deployment scenarios, this must be installed.
|
|
- **occlum-pal**: only contains the Occlum PAL library (a thin layer to hide details of libOS and provide API for applications)
|
|
- **occlum-sgx-tools**: minimum dependencies from Intel SGX SDK e.g. sgx-gdb, sgx_sign
|
|
- **occlum-toolchains-\<language\>**: toolchain components for specific language
|
|
- **occlum**: complete package to support all Occlum commands. `occlum-toolchains-gcc` is also installed by default. Please install packages of other programming languages based on your need.
|
|
|
|
## RPM Installer
|
|
|
|
### How to Build
|
|
|
|
Normally, Occlum installers should be provided together with release. However, users can also build them on their own.
|
|
|
|
To build RPM packages, a docker container with Occlum CentOS image (based on CentOS 8.1) is needed. Execute below commands under the occlum directory:
|
|
```
|
|
cd tools/installer/rpm
|
|
make
|
|
```
|
|
and occlum rpm installer can be found under `build/rpms`.
|
|
|
|
If a user wants to build his application on a platform installed with Occlum installer, toolchain installers are also needed. To build language specific toolchain installer, just run the command:
|
|
```
|
|
cd tools/installer/rpm
|
|
make <language option>
|
|
```
|
|
Now, only `c/c++` option is supported. And the installer can be found under `build/rpms`.
|
|
|
|
### How to Use
|
|
|
|
RPM installer should be found together with Occlum release package at [this page](https://github.com/occlum/occlum/releases).
|
|
To run Occlum on clean Centos 8, please follow below steps:
|
|
|
|
**Step 1. Install Prerequisites**
|
|
```
|
|
yum install -y libcurl-devel openssl-devel fuse-devel fuse-libs autoconf automake cmake libtool make yum-utils gdb python2
|
|
ln -s /usr/bin/python2 /usr/local/bin/python
|
|
dnf config-manager --set-enabled PowerTools
|
|
yum install -y ocaml ocaml-ocamlbuild
|
|
```
|
|
|
|
**Step 2. Install Intel® SGX driver and Intel® SGX PSW**
|
|
Please follow [Intel SGX Installation Guide](https://download.01.org/intel-sgx/sgx-linux/2.9.1/docs/Intel_SGX_Installation_Guide_Linux_2.9.1_Open_Source.pdf) to install SGX driver and SGX PSW. SGX SDK is not required. Using RPM installer is recommanded.
|
|
|
|
Also, UAE service libraries are needed but may not installed together with SGX PSW if SGX PSW installer is used. Go to SGX RPM local repo and run:
|
|
```
|
|
rpm -i libsgx-uae-service-2.9.101.2-1.el7.x86_64.rpm
|
|
```
|
|
|
|
**Step 3. Install Occlum Installer and Toolchains Installer**
|
|
```
|
|
rpm -i occlum-sgx-tools-*.rpm
|
|
rpm -i occlum-pal-*.rpm
|
|
rpm -i occlum-runtime-*.rpm
|
|
```
|
|
|
|
Toolchains are needed when compile applications and also during runtime. Choose to install the toolchain installer based on the application's language. Currently, we only supports `C/C++`. More language toolchain installers are on the way. To install `C/C++` toolchain, just run the command:
|
|
```
|
|
rpm -i occlum-toolchains-gcc-*.rpm
|
|
```
|
|
|
|
At last, install `occlum` package to get complete support of Occlum:
|
|
```
|
|
rpm -i occlum_*.rpm
|
|
```
|
|
|
|
To make the new installed binaries and libraries work, this command must be executed:
|
|
```
|
|
source /etc/profile
|
|
```
|
|
|
|
Finally, you are good to go!
|
|
|
|
|
|
## DEB Installer
|
|
|
|
### How to Build
|
|
|
|
Normally, Occlum installers should be provided together with release. However, users can also build them on their own.
|
|
|
|
To build deb packages, a docker container with Occlum Ubuntu image (based on Ubuntu 18.04) is needed. Execute below commands under the occlum directory:
|
|
```
|
|
cd tools/installer/deb
|
|
make
|
|
```
|
|
and occlum deb installer can be found under `build/debs`.
|
|
|
|
If a user wants to build his application on a platform installed with Occlum installer, toolchain installers are also needed. To build language specific toolchain installer, just run the command:
|
|
```
|
|
cd tools/installer/deb
|
|
make <language option>
|
|
```
|
|
Now, only `c/c++` option is supported. And the installer can be found under `build/debs`.
|
|
|
|
### How to Use
|
|
|
|
DEB installer should be found together with Occlum release package at [this page](https://github.com/occlum/occlum/releases).
|
|
To run Occlum on clean Ubuntu 18.04, please follow below steps:
|
|
|
|
**Step 1. Install Prerequisites**
|
|
```
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends libcurl4-openssl-dev libssl-dev libprotobuf-dev libfuse-dev autoconf automake make cmake libtool gdb python jq ca-certificates gnupg wget vim
|
|
```
|
|
|
|
**Step 2. Install Intel® SGX driver and Intel® SGX PSW**
|
|
Please follow [Intel SGX Installation Guide](https://download.01.org/intel-sgx/sgx-linux/2.9.1/docs/Intel_SGX_Installation_Guide_Linux_2.9.1_Open_Source.pdf) to install SGX driver and SGX PSW. SGX SDK is not required. Using PSW installer is recommanded.
|
|
|
|
To install PSW, follow the guide to add Intel® SGX repository to apt source. And then run:
|
|
```
|
|
apt-get update
|
|
apt-get install -y libsgx-epid libsgx-urts libsgx-quote-ex libsgx-uae-service
|
|
```
|
|
|
|
After installing PSW, please make sure that the aesm service is running:
|
|
```
|
|
service status aesmd
|
|
```
|
|
|
|
**Step 3. Install enable_RDFSBASE Kernel Module**
|
|
Please follow [this README](https://github.com/occlum/enable_rdfsbase/blob/master/README.md) to install `enable_rdfsbase` kernel module.
|
|
|
|
**Step 4. Install Occlum Installer and Toolchains Installer**
|
|
```
|
|
cd <path to installer>
|
|
apt install -y ./occlum-runtime*.deb
|
|
apt install -y ./occlum-pal*.deb
|
|
apt install -y ./occlum-sgx-tools*.deb
|
|
```
|
|
|
|
Currently, we only supports `C/C++`. More language toolchain installers are on the way. To install `C/C++` toolchain, just run the command:
|
|
```
|
|
apt install -y ./occlum-toolchains-gcc*.deb
|
|
```
|
|
|
|
At last, install `occlum` package to get complete support of Occlum:
|
|
```
|
|
apt install -y ./occlum_*.deb
|
|
```
|
|
|
|
To make the new installed binaries and libraries work, this command must be executed:
|
|
```
|
|
source /etc/profile
|
|
```
|
|
|
|
**Step 5. Install Debug Symbol Packages (OPTIONAL)**
|
|
If users want to debug the application running inside the libos, debug symbol packages are also needed. Just run:
|
|
```
|
|
apt install -y ./occlum-dbgsym*.ddeb ./occlum-pal-dbgsym*.ddeb ./occlum-runtime-dbgsym*.ddeb ./occlum-toolchains-gcc-dbgsym*.ddeb ./occlum-sgx-tools-dbgsym*.ddeb
|
|
```
|