If you are on macOS, you may find the Building from source on macOS documentation useful.
Either a working Docker install able to run GNU/Linux binaries (e.g. Docker on Linux, macOS, Windows), so you can reuse our pre-populated Docker image with all necessary development dependencies when building versions prior to v22.1; or
If using Bazel to build Cockroach (for
masterand v22.1 onward), the following dependencies are required:
A C++ compiler that supports C++11. Note that GCC prior to 6.0 doesn't work due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48891
The standard C/C++ development headers on your system.
On GNU/Linux, the terminfo development libraries, which may be part of a ncurses development package (e.g. `libncurses-dev` on Debian/Ubuntu, but `ncurses-devel` on CentOS). You also need the
libresolv-wrapperpackage on Ubuntu < 22.04.
Git 1.9+, we recommend v2.20+
Bash (4+ is preferred)
GNU Make (4.2+ is known to work)
CMake 3.20.* (on Macs 3.21+ are also known to work)
Yacc or Bison
GNU Patch 2.7+
Bazelisk (you can use Bazel directly instead of Bazelisk, although Bazelisk makes sure you’re using the same version that we use in CI)
If you're running macOS, a full installation of XCode is necessary.
maketo build Cockroach (preferred for v21.2 and prior, deprecated from 22.1 through 23.1, no longer an option for 23.2 onward), all the dependencies above are required plus:
A Go environment with a recent 64-bit version of the toolchain. Note that the Makefile enforces the specific version required, as it is updated frequently.
NodeJS 12.x and Yarn 1.7+
make is deprecated for building v22.1 through v23.1 of
cockroach, but still the preferred build system for v21.2 or prior. On
master and release branches v23.2 and newer, building with
make is no longer an option.
An additional prerequisite in this case is a working Docker install able to run GNU/Linux binaries (e.g. Docker on Linux, macOS, Windows), so you can reuse our pre-populated Docker image with all necessary development dependencies. If you are a CRL employee, you cannot use Docker Desktop and should use an alternative like Podman or Rancher Desktop.
make test, or anything else our Makefile offers.