Compile from source

Pegasus supports Linux only. Please don’t hesitate to contact us via Github Issues when you encountered any problem.

Requirements

  • GCC 5+
  • CMake 3.11+

Ubuntu environment

You can refer to the docker image pegasus-build-dev/ubuntu16.04 to install all dependencies.

apt-get update -y; \
apt-get -y install build-essential \
                   python3-pip \
                   libaio-dev \
                   libsnappy-dev \
                   libbz2-dev \
                   libzstd-dev \
                   liblz4-dev \
                   zlib1g \
                   zlib1g.dev \
                   patch \
                   git \
                   curl \
                   zip \
                   automake \
                   libtool \
                   libssl-dev \
                   bison \
                   flex;

pip3 install --no-cache-dir cmake

CentOS environment

You can refer to the docker image pegasus-build-dev/centos7 to install all dependencies.

yum -y install centos-release-scl \
               scl-utils \
               epel-release;

yum -y install devtoolset-7-gcc \
               devtoolset-7-gcc-c++ \
               python3 \
               automake \
               autoconf \
               make \
               libtool \
               git \
               file \
               wget \
               unzip \
               which \
               openssl-devel \
               libaio-devel \
               snappy-devel \
               bzip2-devel \
               zlib \
               zlib-devel \
               libzstd-devel \
               lz4-devel \
               bison \
               flex \
               patch;

pip3 install --no-cache-dir cmake

Compilation

Please refer to Downloads to fetch the sources。

./run.sh build -c

The output of compilation will be placed under DSN_ROOT of the source directory. It includes bin, include and lib.

Packaging

Package server binaries for deployment:

./run.sh pack_server

Package client libraries for C/C++ development:

./run.sh pack_client

Package toolset which includes various tools (shell, bench):

./run.sh pack_tools

If this is your first time compiling Pegasus, it’s recommended to try onebox.

Apache Incubator
Copyright © 2020 The Apache Software Foundation. Licensed under the Apache License, Version 2.0.

Apache Pegasus is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.