Inoffizielle und nicht unterstützte Plattformen
Warning Die auf dieser Seite aufgeführten Plattformen werden nicht offiziell unterstützt. Die Build-Anweisungen werden nach bestem Wissen bereitgestellt. Community-Beiträge sind sehr willkommen.
DuckDB wird für mehrere Plattformen mit unterschiedlichen Unterstützungsstufen gebaut und ausgeliefert. DuckDB kann für andere Plattformen mit unterschiedlichem Erfolg gebaut werden. Diese Seite gibt einen Überblick darüber, mit dem Ziel klarzustellen, welche Plattformen voraussichtlich funktionieren.
32-Bit-Architekturen
32-Bit-Architekturen werden offiziell nicht unterstützt, aber für einige dieser Plattformen lässt sich DuckDB manuell bauen. Siehe zum Beispiel die Build-Anweisungen für 32-Bit-Raspberry-Pi-Boards.
Beachten Sie, dass 32-Bit-Plattformen aufgrund des adressierbaren Speichers auf 4 GiB RAM beschränkt sind.
Big-Endian-Architekturen
Big-Endian-Architekturen (etwa PowerPC) werden von DuckDB nicht unterstützt. DuckDB lässt sich auf solchen Architekturen wahrscheinlich bauen, die entstehende Binärdatei kann bei bestimmten Operationen jedoch Korrektheitsfehler aufweisen. Daher wird von der Verwendung abgeraten.
RISC-V-Architekturen
Nativer Build (empfohlen)
DuckDB baut nativ auf 64-Bit-RISC-V-Boards ohne besondere Flags. Getestet auf einem BananaPi F3 (SpacemiT K1, rv64gc, 8 Kerne @ 1,6 GHz, 16 GB RAM) mit Debian Trixie:
sudo apt-get updatesudo apt-get install -y git g++ cmake ninja-buildgit clone --depth=1 https://github.com/duckdb/duckdbcd duckdbmkdir build && cd buildcmake .. -DCMAKE_BUILD_TYPE=Releasemake -j$(nproc)Die Build-Zeit beträgt etwa 2 Stunden auf einem 8-Kern-SpacemiT-K1. Die entstehende Binärdatei funktioniert ohne weitere Anpassungen:
./duckdb -c “SELECT 'Hello from RISC-V' AS message;”┌───────────────────┐│ message ││ varchar │├───────────────────┤│ Hello from RISC-V │└───────────────────┘Aggregationsabfragen funktionieren wie erwartet:
./duckdb -c “CREATE TABLE test AS SELECT range AS id, range * 3.14 AS value FROM range(1000);SELECT count(*) AS cnt, round(avg(value), 2) AS avg_val FROM test;”┌───────┬─────────┐│ cnt │ avg_val ││ int64 │ double │├───────┼─────────┤│ 1000 │ 1568.43 │└───────┴─────────┘Das DuckDB-Python-Paket lässt sich auf riscv64 ebenfalls erfolgreich aus dem Quellcode bauen:
pip install duckdb --no-binary duckdbBuild mit RVV (RISC-V Vector Extension)
Auf Boards mit Unterstützung für RVV 1.0 (z. B. SpacemiT K3 mit vlen 256) können Sie Vektorinstruktionen für bessere Leistung aktivieren. Der Nutzer „LivingLinux“ auf Bluesky hat DuckDB mit RVV gebaut und ein Video dazu veröffentlicht:
GEN=ninja \ CC='gcc-14 -march=rv64gcv_zicsr_zifencei_zihintpause_zvl256b' \ CXX='g++-14 -march=rv64gcv_zicsr_zifencei_zihintpause_zvl256b' \ BUILD_EXTENSIONS='fts' \ makeCross-Compilation
Wer keine RISC-V-Hardware hat, kann DuckDB mit der riscv-gnu-toolchain cross-kompilieren:
GEN=ninja \ CC='riscv64-linux-gnu-gcc -march=rv64gcv_zicsr_zifencei_zihintpause_zvl256b' \ CXX='riscv64-linux-gnu-g++ -march=rv64gcv_zicsr_zifencei_zihintpause_zvl256b' \ makeWeitere Informationen zur DuckDB-RISC-V-Cross-Compilation finden Sie in mocusez/duckdb-riscv-ci und im DuckDB-Pull-Request #16549.
Bekannte Probleme
Plattform wird falsch gemeldet
Seit Version 1.5.2 meldet DuckDB die Plattform fälschlicherweise als amd64 für nicht unterstützte Plattformen wie RISC-V. Dadurch wird eine falsche Erweiterungsbinärdatei heruntergeladen. Derzeit sind Erweiterungen nur für offiziell unterstützte Plattformen verfügbar. Um eine Erweiterung zu nutzen, müssen Sie sie selbst bauen, z. B. mit dem Flag BUILD_EXTENSIONS.