Skip to content

Compile and install from source code

If you want to compile Percona XtraDB Cluster, you can find the source code on GitHub. Before you begin, make sure that the following packages are installed:

apt yum
Git git git
SCons scons scons
GCC gcc gcc
g++ g++ gcc-c++
OpenSSL openssl openssl
Check check check
CMake cmake cmake
Bison bison bison
Boost libboost-all-dev boost-devel
Asio libasio-dev asio-devel
Async I/O libaio-dev libaio-devel
ncurses libncurses5-dev ncurses-devel
Readline libreadline-dev readline-devel
PAM libpam-dev pam-devel
socat socat socat
curl libcurl-dev libcurl-devel

Check packages

You may have already installed most of the packages. Run one of the following commands to install any missing dependencies:

$ sudo apt install -y git scons gcc g++ openssl check cmake bison \
libboost-all-dev libasio-dev libaio-dev libncurses5-dev libreadline-dev \
libpam-dev socat libcurl-dev
$ sudo yum install -y git scons gcc gcc-c++ openssl check cmake bison \
boost-devel asio-devel libaio-devel ncurses-devel readline-devel pam-devel \
socat libcurl-devel

glibc version

The glibc (GNU C Library) version can differ across software builds due to several key factors:

Reason Description
Operating system variation When you build software on different Linux distributions or versions, each may ship with a different default glibc version. For example, Red Hat Enterprise Linux or Ubuntu might have distinct system library versions that impact compilation.
Backward compatibility considerations Some applications are compiled to support multiple glibc versions.
- Developers often create builds that can run on older systems.
- This means intentionally targeting a slightly older glibc version for wider compatibility.
System architecture differences 32-bit and 64-bit systems might require different glibc implementations.
- ARM, x86, and other processor architectures can have unique library requirements.
Security and patch levels Distributions backport security patches at different rates.
- A system’s glibc version reflects its current security update status.
- Critical security updates can prompt version changes.
Compilation environment The specific development environment and build tools used can directly influence which glibc version gets linked during compilation. Container environments, cross-compilation setups, and build servers might have unique library configurations.

Practical Tip: Use ldd --version to check your current glibc version and understand potential compatibility constraints in your software ecosystem.

Compile

To compile Percona XtraDB Cluster from source code:

  1. Clone the latest repository or update it to the latest state. The old codebase may not be compatible with the build script. Clone the Percona XtraDB Cluster repository:

    $ git clone https://github.com/percona/percona-xtradb-cluster.git
    
  2. Check out the 8.4 branch and initialize submodules:

    $ cd percona-xtradb-cluster
    $ git checkout 8.4
    $ git submodule update --init --recursive
    
  3. Download the matching Percona XtraDB Cluster 8.4 tarball (*.tar.gz) for your operating system from Percona Software Downloads. The following example extracts the Percona XtraDB Cluster 8.4 tar.gz file to the target directory ./pxc-build:

    $ tar -xvf percona-xtrabackup-8.4-Linux-x86_64.glibc2.31.tar.gz -C ./pxc-build
    
  4. Run the build script ./build-ps/build-binary.sh. By default, it attempts to build into the current directory. Specify the target output directory, such as ./pxc-build:

    $ mkdir ./pxc-build
    $ ./build-ps/build-binary.sh ./pxc-build
    

When the compilation completes, pxc-build contains a tarball, such as Percona-XtraDB-Cluster-8.4.tar.gz, that you can deploy on your system.

Note

The exact version and release numbers may differ.

Get expert help

If you need assistance, visit the community forum for comprehensive and free database knowledge, or contact our Percona Database Experts for professional support and services.


Last update: 2024-12-19