Heron can currently be built on the following Linux platforms:
To build Heron on a fresh Ubuntu 20.04 installation:
$ sudo apt-get update -y $ sudo apt-get upgrade -y
$ sudo apt-get install git build-essential automake cmake libtool-bin zip ant \ libunwind-setjmp0-dev zlib1g-dev unzip pkg-config python3-setuptools -y
export CC=/usr/bin/gcc export CCX=/usr/bin/g++
$ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update -y $ sudo apt-get install openjdk-11-jdk-headless -y $ export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/0.26.0/bazel-0.26.0-installer-linux-x86_64.sh chmod +x /tmp/bazel.sh /tmp/bazel.sh --user
Make sure to download the appropriate version of Bazel (currently {{% bazelVersion %}}).
$ sudo apt-get install python3-dev python3-pip
PATH
$ export PATH="$PATH:$HOME/bin"
$ git clone https://github.com/apache/incubator-heron.git && cd heron
$ ./bazel_configure.py
$ bazel build heron/...
$ bazel build scripts/packages:binpkgs $ bazel build scripts/packages:tarpkgs
This will install Heron packages in the bazel-bin/scripts/packages/
directory.
If you encounter errors with libunwind, libtool, or gperftools, we recommend installing them manually.
$ wget http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz $ tar -xvf libtool-2.4.6.tar.gz $ cd libtool-2.4.6 $ ./configure $ make $ sudo make install
$ wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz $ tar -xvf libunwind-1.1.tar.gz $ cd libunwind-1.1 $ ./configure $ make $ sudo make install
$ wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.5/gperftools-2.5.tar.gz $ tar -xvf gperftools-2.5.tar.gz $ cd gperftools-2.5 $ ./configure $ make $ sudo make install
To build Heron on a fresh Rocky 8 installation:
$ sudo yum install gcc gcc-c++ kernel-devel wget unzip zlib-devel zip git automake cmake patch libtool ant pkg-config -y
$ wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz $ tar xvf libunwind-1.1.tar.gz $ cd libunwind-1.1 $ ./configure $ make $ sudo make install
$ export CC=/usr/bin/gcc $ export CCX=/usr/bin/g++
$ sudo yum install java-11-openjdk java-11-openjdk-devel $ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
Bazelisk helps automate the management of Bazel versions
wget -O /tmp/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.11.0/bazelisk-darwin-amd64 chmod +x /tmp/bazelisk sudo mv /tmp/bazelisk /usr/local/bin/bazel
$ git clone https://github.com/apache/incubator-heron.git && cd incubator-heron
$ ./bazel_configure.py
$ bazel build heron/...
This will build in the Bazel default fastbuild
mode. Production release packages include additional performance optimizations not enabled by default. To enable production optimizations, include the opt
flag. This defaults to optimization level -O2
. The second option overrides the setting to bump it to -CO3
.
$ bazel build -c opt heron/...
$ bazel build -c opt --copt=-O3 heron/...
If you wish to add the code syntax style check, add --config=stylecheck
.
$ bazel build scripts/packages:binpkgs $ bazel build scripts/packages:tarpkgs
This will install Heron packages in the bazel-bin/scripts/packages/
directory.