Skip to main content
This guide explains how to build Bitcoin Core on Linux and Unix systems. For BSD-specific instructions, see the BSD build guide.

Basic Build Process

1

Configure the build

Run CMake to configure the build system:
To see all available configuration options:
2

Build and install

Compile Bitcoin Core and optionally install it:

Memory Requirements

C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of memory available when compiling Bitcoin Core.
On systems with less memory, compilation may fail or be extremely slow. Consider using the memory optimization options below.

Low Memory Optimization

If you have limited memory, you can tune GCC to conserve memory:
You can also skip debugging information:
Alternatively, use Clang instead of GCC (often less resource-hungry):

Distribution-Specific Instructions

Ubuntu & Debian

1

Install build requirements

Install the base build tools:
For Debian “oldstable” or earlier Ubuntu LTS releases, you may need to install a newer compiler according to the dependencies documentation.
2

Install required dependencies

Install the core dependencies:
3

Install wallet dependencies (optional)

SQLite is required for wallet functionality:
To build without wallet support, use -DENABLE_WALLET=OFF during configuration.
4

Install IPC dependencies (optional)

Cap’n Proto is needed for IPC functionality:
To build without IPC, use -DENABLE_IPC=OFF during configuration.
5

Install ZMQ dependencies (optional)

For ZMQ notification support:
Enable with -DWITH_ZMQ=ON during configuration.
6

Install USDT dependencies (optional)

For User-Space Statically Defined Tracing:
7

Install GUI dependencies (optional)

For the Qt-based GUI:
For Wayland support:
For QR code support in the GUI:
Enable the GUI with -DBUILD_GUI=ON during configuration.

Fedora

1

Install build requirements

2

Install required dependencies

3

Install wallet dependencies (optional)

4

Install IPC dependencies (optional)

5

Install ZMQ dependencies (optional)

6

Install USDT dependencies (optional)

7

Install GUI dependencies (optional)

For Qt GUI:
For Wayland support:
For QR codes:

Alpine

1

Install build requirements

2

Install required dependencies

3

Install wallet dependencies (optional)

4

Install IPC dependencies (optional)

5

Install ZMQ dependencies (optional)

6

Install GUI dependencies (optional)

For QR codes:
User-Space Statically Defined Tracing (USDT) is not supported or tested on Alpine Linux.

Example: Arch Linux Build

This example shows the complete process to build Bitcoin Core on Arch Linux:
1

Install dependencies

2

Clone the repository

3

Configure and build

4

Run tests

5

Run Bitcoin Core

Disable-Wallet Mode

When the intention is to only run a P2P node without a wallet, Bitcoin Core can be compiled in disable-wallet mode:
In this case there is no dependency on SQLite. Mining is also possible in disable-wallet mode using the getblocktemplate RPC call.

Alternative: Self-Compiled Dependencies

Instead of using your distribution’s packages, you can self-compile all dependencies using the depends system. See dependencies.md for more information.