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
Installation of pre-requisites 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
Installation of pre-requisites 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
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
Build in Centos
cd daos scons-3 --config=force --build-deps=yes install -j 8
SuSE
Build in 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.
env setup
# Within daos repository, after build step source utils/sl/setup_local.sh