익스텐션 문제 해결
익스텐션 문제 해결 (Troubleshooting of Extensions)
DuckDB 익스텐션을 설치하려다 오류 메시지를 보고 이 페이지에 도착했을 거예요. 특정 익스텐션이 어느 시점에 저장소에서 안 보이는 데는 여러 가지 이유가 있고, 하나씩 짚어 보면 대부분 해결돼요.
출처: 문서
본문
예를 들어 아래처럼 존재하지 않는 익스텐션을 설치하려 하면 DuckDB가 오류 메시지를 보여 줘요:
INSTALL non_existing;
HTTP Error:
Failed to download extension "non_existing" at URL "http://extensions.duckdb.org/v1.4.0/osx_arm64/non_existing.duckdb_extension.gz" (HTTP 404)
Candidate extensions: "inet", "encodings", "core_functions", "sqlite_scanner", "postgres_scanner"
For more info, visit https://duckdb.org/docs/stable/extensions/troubleshooting?version=v1.4.0&platform=osx_arm64&extension=non_existing
특정 시점에 익스텐션이 저장소에서 사용 불가능해지는 시나리오는 여러 가지가 있어요:
- 익스텐션이 아직 업로드되지 않은 경우 — 릴리스 날짜 이후 다소 지연이 있을 수 있어요.
duckdb/duckdb또는duckdb/community-extensions의 이슈를 확인하거나, 직접 이슈를 만들어 보는 것도 좋아요. - 익스텐션이 존재하지만 다른 저장소에 있는 경우 — 예를 들어
INSTALL ⟨name⟩ FROM core;또는INSTALL ⟨name⟩ FROM community;또는INSTALL ⟨name⟩ FROM core_nightly;를 시도해 보세요 (익스텐션 저장소 설치 페이지 참조). - 네트워크 문제 — 익스텐션이 엔드포인트에 존재하지만 로컬 DuckDB에서 접근할 수 없는 경우. 오류 메시지의 URL을 브라우저 검색창에 그대로 붙여 넣어 직접 방문해 보세요.
DuckDB 개발 버전, 즉 PRAGMA version의 library_version이 v로 시작하지 않는 버전을 쓰고 있다면, 기본 익스텐션 저장소에서 익스텐션을 더 이상 받지 못할 수 있어요.
확신이 안 들 때는 duckdb/duckdb에 이슈를 올려 보세요.
브라우저로 익스텐션을 수동 다운로드하는 과정
익스텐션이 사용 가능한지 확인하려면, https://extensions.duckdb.org/v1.4.4/osx_arm64/spatial.duckdb_extension.gz 같은 제공된 링크를 브라우저로 방문해 관련 익스텐션 리소스를 내려받아 보세요. 참고로 http://는 https://로 대체되었어요.
성공하면 익스텐션이 기본 Downloads 폴더에 다운로드되고 압축이 풀리니, SQL에서 이렇게 실행하면 돼요:
INSTALL '~/Downloads/spatial.duckdb_extension';
-- 또는
FORCE INSTALL '~/Downloads/spatial.duckdb_extension';
이 명령 이후에는 익스텐션이 정상적으로 설치돼요.