DAOS Build from scratch
NOTE THESE ARE NOT TO BE APPLIED TO 2.0 TESTING, USE THE QUICKSTARTS IN THE 2.0 ON-LINE DOCUMENTATION
This section is only recommended for SW developers.
The following instructions describe how to build DAOS from source code. The following steps are required:
- Install dependencies
- Download source code
- Build
- Environment setup
The approximate time to read and execute the steps on this guide is around 25 minutes per OS.
The time may change based on your network speed and processing power.
Installation of pre-requisites
The following packages are required
CentOS
# Run all commands as root
# Install DNF package manager
yum clean all
yum -y install dnf dnf-plugins-core epel-release
# DNF Section
dnf -y install deltarpm
dnf -y upgrade
dnf -y install \
boost-python36-devel \
clang-analyzer \
cmake \
CUnit-devel \
doxygen \
e2fsprogs \
file \
flex \
fuse3-devel \
gcc \
gcc-c++ \
git \
golang \
graphviz \
hwloc-devel \
ipmctl \
java-1.8.0-openjdk \
json-c-devel \
lcov \
libaio-devel \
libcmocka-devel \
libevent-devel \
libipmctl-devel \
libiscsi-devel \
libtool \
libtool-ltdl-devel \
libunwind-devel \
libuuid-devel \
libyaml-devel \
Lmod \
lz4-devel \
make \
man \
maven \
nasm \
ndctl \
numactl \
numactl-devel \
openmpi3-devel \
openssl-devel \
pandoc \
patch \
patchelf \
pciutils \
python36-Cython \
python36-devel \
python36-distro \
python36-junit_xml \
python36-numpy \
python36-paramiko \
python36-pylint \
python36-requests \
python36-tabulate \
python36-pyxattr \
python36-PyYAML \
python36-scons \
sg3_utils \
sudo \
valgrind-devel \
yasm
dnf clean all
SuSE
# Run as root
zypper --non-interactive --gpg-auto-import-keys --no-gpg-checks ref
zypper --non-interactive update
zypper --non-interactive install \
boost-devel \
clang \
cmake \
cunit-devel \
curl \
doxygen \
flex \
fuse3-devel \
gcc \
gcc-c++ \
git \
go1.14 \
go1.14-race \
graphviz \
gzip \
hwloc-devel \
ipmctl-devel \
java-1_8_0-openjdk-devel \
libaio-devel \
libcmocka-devel \
libevent-devel \
libiscsi-devel \
libjson-c-devel \
libltdl7 \
liblz4-devel \
libnuma-devel \
libopenssl-devel \
libtool \
libunwind-devel \
libuuid-devel \
libyaml-devel \
lua-lmod \
make \
man \
maven \
nasm \
openmpi3-devel \
pandoc \
patch \
patchelf \
pciutils \
python3-devel \
python3-distro \
python3-junit-xml \
python3-pyxattr \
python3-PyYAML \
python3-tabulate \
scons \
sg3_utils \
sudo \
valgrind-devel \
which \
yasm
zypper clean --all
update-ca-certificates
zypper --non-interactive --no-gpg-checks install --allow-unsigned-rpm lua-lmod
zypper --non-interactive install -y ipmctl-devel go1.14 go1.14-race
Daos source code
Download daos source code using the following command:
git clone --recurse-submodules -b v1.2-rc1 https://github.com/daos-stack/daos.git
Building DAOS & Dependencies
Once the sources are downloaded, the pre-requisites to build the source code can be installed by:
CentOS
cd daos scons-3 --config=force --build-deps=yes install -j 8
SuSE
cd daos scons --config=force --build-deps=yes install -j 8
Environment setup
Once DAOS has been built, the environment must be modified to search for binaries and header files in the installation path.
# Within daos repository, after build step source utils/sl/setup_local.sh