비공식·미지원 플랫폼

비공식·미지원 플랫폼 (Unofficial and Unsupported Platforms)

경고 이 페이지에 나열된 플랫폼은 공식적으로 지원되지 않아요. 빌드 지침은 최선을 다해 제공되는 거예요. 커뮤니티 기여는 언제나 환영해요.

DuckDB는 각기 다른 지원 수준으로 여러 플랫폼에 빌드·배포돼요. DuckDB는 다른 플랫폼에서도 다양한 성공률로 빌드될 수 있어요. 이 페이지는 어떤 플랫폼에서 동작이 기대되는지 명확히 하려는 목적으로 그 개요를 제공해요.

출처: 문서

본문

32비트 아키텍처

32비트 아키텍처는 공식적으로 지원되지 않지만, 일부 플랫폼에서는 DuckDB를 수동으로 빌드할 수 있어요. 예를 들어 32비트 Raspberry Pi 보드용 빌드 지침을 참고해요.

32비트 플랫폼은 주소 지정 가능한 메모리 양 때문에 4GiB RAM으로 제한된다는 점에 유의해요.

빅엔디안 아키텍처

빅엔디안 아키텍처(PowerPC 등)는 DuckDB가 지원하지 않아요. 그러한 아키텍처에서 DuckDB를 빌드할 수는 있겠지만, 결과 바이너리는 특정 연산에서 정확성 오류를 보일 수 있어요. 따라서 사용을 권장하지 않아요.

RISC-V 아키텍처

네이티브 빌드 (권장)

DuckDB는 특별한 플래그 없이 RISC-V 64비트 보드에서 네이티브로 빌드돼요. Debian Trixie를 실행하는 BananaPi F3(SpacemiT K1, rv64gc, 8코어 @ 1.6 GHz, 16 GB RAM)에서 테스트했어요:

sudo apt-get update
sudo apt-get install -y git g++ cmake ninja-build
git clone --depth=1 https://github.com/duckdb/duckdb
cd duckdb
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)

8코어 SpacemiT K1에서 빌드 시간은 대략 2시간이에요. 결과 바이너리는 설정 없이 바로 동작해요:

./duckdb -c "SELECT 'Hello from RISC-V' AS message;"
┌───────────────────┐
│      message      │
│      varchar      │
├───────────────────┤
│ Hello from RISC-V │
└───────────────────┘

집계 쿼리도 기대대로 동작해요:

./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 │
└───────┴─────────┘

DuckDB 파이썬 패키지도 riscv64에서 소스에서 성공적으로 빌드돼요:

pip install duckdb --no-binary duckdb

RVV(RISC-V 벡터 익스텐션)로 빌드

RVV 1.0을 지원하는 보드(예: vlen 256인 SpacemiT K3)에서는 성능 향상을 위해 벡터 명령을 활성화할 수 있어요. Bluesky의 사용자 "LivingLinux"가 RVV로 DuckDB를 빌드하고 동영상도 공개했어요:

GEN=ninja \
    CC='gcc-14 -march=rv64gcv_zicsr_zifencei_zihintpause_zvl256b' \
    CXX='g++-14 -march=rv64gcv_zicsr_zifencei_zihintpause_zvl256b' \
    BUILD_EXTENSIONS='fts' \
    make

크로스 컴파일

RISC-V 하드웨어가 없는 분들은 riscv-gnu-toolchain으로 DuckDB를 크로스 컴파일할 수 있어요:

GEN=ninja \
    CC='riscv64-linux-gnu-gcc -march=rv64gcv_zicsr_zifencei_zihintpause_zvl256b' \
    CXX='riscv64-linux-gnu-g++ -march=rv64gcv_zicsr_zifencei_zihintpause_zvl256b' \
    make

DuckDB RISC-V 크로스 컴파일에 대한 더 많은 참고 정보는 mocusez/duckdb-riscv-ciDuckDB Pull Request #16549를 참고해요.

알려진 문제 (Known Issues)

플랫폼이 잘못 보고됨

1.5.2 버전부터 DuckDB는 RISC-V 같은 미지원 플랫폼에 대해 플랫폼을 amd64로 잘못 보고해요. 이로 인해 잘못된 익스텐션 바이너리를 다운로드할 수 있어요. 현재 익스텐션은 공식 지원 플랫폼에서만 제공되므로, 익스텐션을 사용하려면 BUILD_EXTENSIONS 플래그 등으로 직접 빌드해야 해요.

더 알아보기 (Learn more)