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:
sudo apt-get updatesudo apt-get install -y git g++ cmake ninja-build libssl-dev libcurl4-openssl-devgit clone https://github.com/duckdb/duckdbcd duckdbGEN=ninja makeFedora, 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:
sudo yum install -y git g++ cmake ninja-build openssl-develgit clone https://github.com/duckdb/duckdbcd duckdbGEN=ninja makeBeachten 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:
sudo yum install -y git gcc-c++ cmake openssl-develgit clone https://github.com/duckdb/duckdbcd duckdbmkdir buildcd buildcmake ..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:
sudo pacman -S duckdbDie Anforderungen für das Bauen des DuckDB-CLI-Clients unter Arch, Manjaro usw. sind die folgenden:
sudo pacman -S git gcc cmake ninja opensslgit clone https://github.com/duckdb/duckdbcd duckdbGEN=ninja makeAlpine Linux
CLI-Client
Die Anforderungen für das Bauen des DuckDB-CLI-Clients unter Alpine Linux sind die folgenden:
apk add g++ git make cmake ninjagit clone https://github.com/duckdb/duckdbcd duckdbGEN=ninja makeLeistung 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:
apk add g++ py3-pip python3-devpip install duckdbDen DuckDB-CLI-Client unter Linux verwenden
Wenn der Build erfolgreich abgeschlossen ist, finden Sie die Binärdatei duckdb im Verzeichnis build:
build/release/duckdbFü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:
BUILD_EXTENSIONS='autocomplete;httpfs;icu;json;tpch' GEN=ninja makeFehlerbehebung
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:
/usr/bin/ld: /usr/include/c++/10/bits/basic_string.tcc:206:warning: too many GOT entries for -fpic, please recompile with -fPICLö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.
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.
sudo apt-get install -y libssl-devBauen Sie anschließend mit:
GEN=ninja BUILD_EXTENSIONS="httpfs" make