⌘+k ctrl+k
1.2.1 (stable)
Search Shortcut cmd + k | ctrl + k
Linux

Prerequisites

On Linux, install the required packages with the package manager of your distribution.

Ubuntu and Debian

CLI Client

On Ubuntu and Debian (and also MX Linux, Linux Mint, etc.), tthe requirements for building the DuckDB CLI client are the following:

sudo apt-get update
sudo apt-get install -y git g++ cmake ninja-build libssl-dev
git clone https://github.com/duckdb/duckdb
cd duckdb
GEN=ninja make

Fedora, CentOS and Red Hat

CLI Client

The requirements for building the DuckDB CLI client on Fedora, CentOS, Red Hat, AlmaLinux, Rocky Linux, etc. are the following:

sudo yum install -y git g++ cmake ninja-build openssl-devel
git clone https://github.com/duckdb/duckdb
cd duckdb
GEN=ninja make

Alpine Linux

CLI Client

The requirements for building the DuckDB CLI client on Alpine Linux are the following:

apk add g++ git make cmake ninja
git clone https://github.com/duckdb/duckdb
cd duckdb
GEN=ninja make

Note that Alpine Linux uses musl libc as its C standard library. Currently, there are no official DuckDB binaries distributed for musl libc but it can be build with it manually following the instructions on this page. Note that starting with DuckDB v1.2.0, extensions are distributed for the linux_amd64_musl platform.

Python Client on Alpine Linux

Currently, installing the DuckDB Python on Alpine Linux requires compilation from source. To do so, install the required packages before running pip:

apk add g++ py3-pip python3-dev
pip install duckdb

Using the DuckDB CLI Client on Linux

Once the build finishes successfully, you can find the duckdb binary in the build directory:

build/release/duckdb

For different build configurations (debug, relassert, etc.), please consult the “Build Configurations” page.

Building Using Extension Flags

To build using extension flags, set the CORE_EXTENSIONS flag to the list of extensions that you want to be build. For example:

CORE_EXTENSIONS='autocomplete;httpfs;icu;json;tpch' GEN=ninja make

Troubleshooting

R Package on Linux AArch64: too many GOT entries Build Error

Problem: Building the R package on Linux running on an ARM64 architecture (AArch64) may result in the following error message:

/usr/bin/ld: /usr/include/c++/10/bits/basic_string.tcc:206:
warning: too many GOT entries for -fpic, please recompile with -fPIC

Solution: Create or edit the ~/.R/Makevars file. This example also contains the MAKEFLAGS setting to parallelize the build:

ALL_CXXFLAGS = $(PKG_CXXFLAGS) -fPIC $(SHLIB_CXXFLAGS) $(CXXFLAGS)
MAKEFLAGS = -j$(nproc)

Building the httpfs Extension Fails

Problem: When building the httpfs extension on Linux, the build may fail with the following error.

CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
  system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
  OPENSSL_INCLUDE_DIR)

Solution: Install the libssl-dev library.

sudo apt-get install -y libssl-dev

Then, build with:

GEN=ninja CORE_EXTENSIONS="httpfs" make