Zum Inhalt springen

Linux

Voraussetzungen

Unter Linux installieren Sie die benötigten Pakete mit dem Paketmanager Ihrer Distribution.

Ubuntu und Debian

CLI-Client

Unter Ubuntu und Debian (sowie MX Linux, Linux Mint usw.) gelten für das Bauen des DuckDB-CLI-Clients die folgenden Anforderungen:

Terminal window
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 und Red Hat

CLI-Client

Die Anforderungen für das Bauen des DuckDB-CLI-Clients unter Fedora, CentOS, Red Hat, AlmaLinux, Rocky Linux usw. sind die folgenden:

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

Beachten Sie, dass Sie auf älteren Red-Hat-basierten Distributionen den Paketnamen für g++ in gcc-c++ ändern, Ninja weglassen und die Anzahl der Make-Jobs manuell festlegen müssen:

Terminal window
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

Die folgenden Anweisungen gelten für Arch Linux und Arch-basierte Distributionen (z. B. Manjaro, Omarchy).

CLI-Client

DuckDB ist im Extra-Paket-Repository von Arch verfügbar. Zur Installation führen Sie aus:

Terminal window
sudo pacman -S duckdb

Die Anforderungen für das Bauen des DuckDB-CLI-Clients unter Arch, Manjaro usw. sind die folgenden:

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

Alpine Linux

CLI-Client

Die Anforderungen für das Bauen des DuckDB-CLI-Clients unter Alpine Linux sind die folgenden:

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

Leistung mit musl libc

Beachten Sie, dass Alpine Linux musl libc als C-Standardbibliothek verwendet. Mit musl libc gebaute DuckDB-Binärdateien sind langsamer als die glibc-Varianten: Bei manchen Workloads kann die Verlangsamung mehr als das 5-Fache betragen. Für leistungsorientierte Workloads wird daher glibc empfohlen.

Verteilung für die Plattformen linux_*_musl

Ab DuckDB v1.2.0 werden DuckDB-Erweiterungen für die Plattform linux_amd64_musl verteilt (noch nicht für die Plattform linux_arm64_musl). Offizielle DuckDB-Binärdateien für musl libc gibt es jedoch nicht; sie lassen sich aber manuell nach den Anweisungen auf dieser Seite bauen.

Python-Client unter Alpine Linux

Derzeit erfordert die Installation von DuckDB-Python unter Alpine Linux die Kompilierung aus dem Quellcode. Installieren Sie dazu die benötigten Pakete, bevor Sie pip ausführen:

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

Den DuckDB-CLI-Client unter Linux verwenden

Wenn der Build erfolgreich abgeschlossen ist, finden Sie die Binärdatei duckdb im Verzeichnis build:

Terminal window
build/release/duckdb

Für andere Build-Konfigurationen (debug, relassert usw.) siehe die Seite „Build-Konfigurationen“.

Erweiterungen bauen

Um Erweiterungen zu bauen, setzen Sie das Flag BUILD_EXTENSIONS auf die Liste der Erweiterungen, die gebaut werden sollen. Zum Beispiel:

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

Fehlerbehebung

R-Paket unter Linux AArch64: Build-Fehler too many GOT entries

Problem: Das Bauen des R-Pakets unter Linux auf einer ARM64-Architektur (AArch64) kann zu folgender Fehlermeldung führen:

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

Lösung: Erstellen oder bearbeiten Sie die Datei ~/.R/Makevars. Dieses Beispiel enthält auch die Einstellung MAKEFLAGS, um den Build zu parallelisieren:

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

Das Bauen der Erweiterung httpfs schlägt fehl

Problem: Beim Bauen der Erweiterung httpfs unter Linux kann der Build mit folgendem Fehler fehlschlagen.

Terminal window
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)

Lösung: Installieren Sie die Bibliothek libssl-dev.

Terminal window
sudo apt-get install -y libssl-dev

Bauen Sie anschließend mit:

Terminal window
GEN=ninja BUILD_EXTENSIONS="httpfs" make