2.0 KiB
Building Scylla Packages
This document describes how to build Scylla's packages.
The build system generates relocatable packages, which means that the packages contain all the dependencies they need, and you can, therefore, install and run the same binaries on all Linux distributions.
The relocatable package tarball is used as a base for building the Linux distribution specific packages, .rpms and .debs.
Building
In these instructions, we use dbuild to build the packages, but you can also build packages without it.
The first step is to run configure.py, which generates the build.ninja file (equivalent of a Makefile):
./tools/toolchain/dbuild ./configure.py --mode=<mode>
(where mode is release, dev, or debug)
The second step is to build the packages with the dist target.
./tools/toolchain/dbuild ninja-build dist
Artifacts
The dist target generates the following tarballs (relocatable packages), which can be installed on any Linux distribution:
Relocatable package artifacts
build/<mode>/scylla-package.tar.gzbuild/release/scylla-python3-package.tar.gzscylla-jmx/build/scylla-jmx-package.tar.gzscylla-tools/build/scylla-tools-package.tar.gz
RPM package artifacts
build/dist/<mode>/redhat/RPMS/x86_64/scylla-*.rpmbuild/dist/<mode>/redhat/RPMS/x86_64/scylla-conf-*.rpmbuild/dist/<mode>/redhat/RPMS/x86_64/scylla-debuginfo-*.rpmbuild/dist/<mode>/redhat/RPMS/x86_64/scylla-kernel-conf-*.rpmbuild/dist/<mode>/redhat/RPMS/x86_64/scylla-server-*.rpmbuild/redhat/RPMS/x86_64/scylla-python3-*.rpmscylla-jmx/build/redhat/RPMS/noarch/scylla-jmx-*.rpmscylla-tools/build/redhat/RPMS/noarch/scylla-tools-*.rpmscylla-tools/build/redhat/RPMS/noarch/scylla-tools-core-*.rpm
Debian package artifacts
Verifying
To verify built Scylla packages, run the following command:
ninja-build dist-check
Please note that you need to run dist-check on the host because it
requires Docker to perform the verification.