Build the source code
NoteAlmaLinux 8 is the recommended Linux development platform for YugabyteDB.
Install necessary packages
First, install Homebrew, if you do not already have it. Homebrew is used to install the other required packages.
/usr/bin/ruby -e "$( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Install the following packages using Homebrew:
brew install autoconf automake bash ccache cmake coreutils gnu-tar libtool \ ninja pkg-config pstree wget python
NoteYugabyteDB build scripts require at least Bash version 4. Make sure that
bash --versionoutputs a version of 4 or higher before proceeding. You may need to put
/opt/homebrew/bin(Apple Silicon) as the first directory on
~/.bashrcto achieve that.
YugabyteDB core is written in C and C++, but the repository contains Java code needed to run some tests and sample applications. To build the Java part, you need:
- Java Development Kit (JDK) 8 or 11.
- Apache Maven 3.3 or later.
Install the following packages to satisfy those requirements:
brew install openjdk@11 maven
Don't forget to add JDK binaries to
PATH, ensuring this version takes precedence.
# On apple silicon mac. echo 'export PATH="/opt/local/homebrew/opt/openjdk@11/bin:$PATH"' >>~/.bashrc # On intel mac. echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >>~/.bashrc
yugabyted-ui is a UI for yugabyted. By default, it is not built unless the corresponding build option is specified or a release package is being built. To build it, npm and Go 1.18 or higher are required.
Build the code
Assuming this repository is checked out in
~/code/yugabyte-db, do the following:
cd ~/code/yugabyte-db ./yb_build.sh release
The command above will build the release configuration, add the binaries into the
build/release-<compiler>-dynamic-ninja directory, and create a
build/latest symlink to that directory.
NoteIf you see errors, such as
internal compiler error: Killed, the system has probably run out of memory. Try again by running the build script with less concurrency, for example,
For more details about building and testing, refer to Build and test.
Build release package (optional)
Perform the following steps to build a release package:
yb_releasescript using the following command:
...... 2020-10-27 13:55:40,856 [yb_release.py:283 INFO] Generated a package at '/Users/me/code/yugabyte-db/build/yugabyte-22.214.171.124-6ab8013159fdca00ced7e6f5d2f98cacac6a536a-release-darwin-x86_64.tar.gz'