⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
Linux

先决条件

在 Linux 上,使用您发行版的软件包管理器安装所需的软件包。

Ubuntu 和 Debian

CLI 客户端

在 Ubuntu 和 Debian(以及 MX Linux、Linux Mint 等)上,构建 DuckDB CLI 客户端的要求如下

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

Fedora、CentOS 和 Red Hat

CLI 客户端

在 Fedora、CentOS、Red Hat、AlmaLinux、Rocky Linux 等系统上,构建 DuckDB CLI 客户端的要求如下

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

请注意,在较旧的基于 Red Hat 的发行版上,您可能需要将 g++ 的包名更改为 gcc-c++,跳过 Ninja,并手动配置 Make 作业的数量

sudo yum install -y git gcc-c++ cmake openssl-devel
git clone https://github.com/duckdb/duckdb
cd duckdb
mkdir build
cd build
cmake ..
make -j`nproc`

Arch Linux

以下说明适用于 Arch Linux 和基于 Arch 的发行版(例如 Manjaro、Omarchy)。

CLI 客户端

DuckDB 在 Arch 的 Extra 软件包仓库中提供。要安装它,请运行

sudo pacman -S duckdb

在 Arch、Manjaro 等系统上,构建 DuckDB CLI 客户端的要求如下

sudo pacman -S git gcc cmake ninja openssl
git clone https://github.com/duckdb/duckdb
cd duckdb
GEN=ninja make

Alpine Linux

CLI 客户端

在 Alpine Linux 上,构建 DuckDB CLI 客户端的要求如下

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

musl libc 的性能

请注意,Alpine Linux 使用 musl libc 作为其 C 标准库。使用 musl libc 构建的 DuckDB 二进制文件与 glibc 变体相比性能较低:对于某些工作负载,速度下降可能超过 5 倍。因此,对于性能敏感型工作负载,建议使用 glibc。

linux_*_musl 平台的发行版

从 DuckDB v1.2.0 开始,DuckDB 扩展 已针对 linux_amd64_musl 平台分发(但尚未针对 linux_arm64_musl 平台)。然而,官方并没有分发针对 musl libc 的 DuckDB 二进制文件,但可以按照此页面上的说明手动构建它。

Alpine Linux 上的 Python 客户端

目前,在 Alpine Linux 上安装 DuckDB Python 需要从源码编译。为此,请在运行 pip 之前安装所需的软件包

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

在 Linux 上使用 DuckDB CLI 客户端

构建成功后,您可以在 build 目录中找到 duckdb 二进制文件

build/release/duckdb

有关不同的构建配置(debugrelassert 等),请查阅 “构建配置”页面

构建扩展

要构建扩展,请将 BUILD_EXTENSIONS 标志设置为您想要构建的扩展列表。例如

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

故障排除

Linux AArch64 上的 R 包:too many GOT entries 构建错误

问题: 在运行 ARM64 架构 (AArch64) 的 Linux 上构建 R 包可能会导致以下错误消息

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

解决方案: 创建或编辑 ~/.R/Makevars 文件。此示例还包含了 MAKEFLAGS 设置以并行化构建

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

构建 httpfs 扩展失败

问题: 在 Linux 上构建 httpfs 扩展时,构建可能会因为以下错误而失败。

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)

解决方案: 安装 libssl-dev 库。

sudo apt-get install -y libssl-dev

然后,使用以下命令进行构建

GEN=ninja BUILD_EXTENSIONS="httpfs" make
© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南