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
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
# Run all commands as root # Install DNF package manager yum clean all && \ yum -y install dnf dnf-plugins-core epel-release # &&DNF \Section yumdnf -y install deltarpm upgradednf &&-y \upgrade yumdnf -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 \ opensslopenmpi3-devel \ pandocopenssl-devel \ patchpandoc \ patchelfpatch \ pciutilspatchelf \ python3-pippciutils \ python36-Cython \ python36-devel \ python36-distro \ python36-jirajunit_xml \ python36-numpy \ python36-paramiko \ python36-pylint \ python36-requests \ python36-requeststabulate \ python36-tabulatepyxattr \ python36-pyxattrPyYAML \ python36-scons \ sg3_utils \ valgrind-develsudo \ yasm && \ yum clean all yum -y install openmpi3-devel && yumvalgrind-devel \ yasm dnf clean all |
SuSE
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
# Run as root zypper --non-interactive update && \ --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-pipxml \ 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:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
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:
Note:
CentOS
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
cd daos
scons-3 --config=force --build-deps=yes install -j 8 |
SuSE
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
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.
Code Block | ||||
---|---|---|---|---|
| ||||
# Within daos repository, after build step
source utils/sl/setup_local.sh |