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