Build the source code
Note
AlmaLinux 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
Note
YugabyteDB build scripts require at least Bash version 4. Make sure thatbash --version
outputs a version of 4 or higher before proceeding. You may need to put /usr/local/bin
(Intel) or /opt/homebrew/bin
(Apple Silicon) as the first directory on PATH
in your ~/.bashrc
to achieve that.
Java
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.
For example,
# 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
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.
Note
If you see errors, such asinternal compiler error: Killed
, the system has probably run out of memory.
Try again by running the build script with less concurrency, for example, -j1
.
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:
-
Run the
yb_release
script using the following command:./yb_release
...... 2020-10-27 13:55:40,856 [yb_release.py:283 INFO] Generated a package at '/Users/me/code/yugabyte-db/build/yugabyte-2.5.1.0-6ab8013159fdca00ced7e6f5d2f98cacac6a536a-release-darwin-x86_64.tar.gz'