Skip to content

Latest commit

 

History

History
96 lines (72 loc) · 3.41 KB

INSTALL.md

File metadata and controls

96 lines (72 loc) · 3.41 KB

Installing

HSE Dependencies

HSE has the following dependencies1:

Note that by default cJSON and lz4 are built as a part of HSE using Meson subprojects for performance and embedding reasons. To use system pacakges for cJSON and lz4, setup your build with the following:

meson setup build -Dforce_fallback_for=

Depending on the build configuration, HSE has the following additional dependencies for various internal tools and documentation:

In addition to the above, we strongly recommend installing the build component or meta package for your system.

# RHEL-based
sudo dnf install "@Development Tools"
# Ubuntu-based
sudo apt install build-essential

Dependencies From System

To obtain these from you system's package manager:

RHEL 8

sudo dnf install libcurl-devel userspace-rcu-devel libevent-devel libbsd-devel
# Optionally, depending on the your build configuration
sudo dnf install cjson-devel lz4-devel mongo-c-driver-devel \
    ncurses-devel HdrHistogram_c-devel doxygen
# For optimal persistent memory (pmem) media class support on x86 architecture
sudo dnf install libpmem-devel

Ubuntu 18.04

The versions of libbsd and mongo-c-driver in the repository are too low. In this case, the HSE build will fall back to using libbsd from a Meson subproject. cJSON, xxHash, and HdrHistogram_c aren't packaged for this distribution.

sudo apt install libcurl4-openssl-dev liburcu-dev libevent-dev
# Optionally, depending on the your build configuration.
sudo apt install liblz4-dev libncurses-dev doxygen
# For optimal persistent memory (pmem) media class support on x86 architecture
sudo dnf install libpmem-dev

Dependencies from Meson Subprojects

Meson has support for subprojects which depending on your build configuration and environment will build software that the top-level project (HSE) depends on.

In the event your build configuration specifies the need for subprojects or you don't have the right packages or versions in the host environment, the subprojects will be transparently built as a part of HSE. Take note that using subprojects can increase build times. HSE has subproject definitions for all of its direct dependencies. When building HSE's subprojects, make sure to have the dependencies for the subprojects satisfied. These include common tools like autoconf and libtool.

Footnotes

  1. The minimum versions of some dependencies may be lower than what is listed. The listed versions are what we know works and test against.

  2. CLI/tools only

  3. Only required if you intend to make use of persistent memory on x86.