mcpField
I
install-duckdb

install-duckdb

github.com/duckdb数据与数据库613952 次安装28 周前更新
代码仓库

关于 install-duckdb

install-duckdb 是用于安装 DuckDB 扩展,或更新扩展和 DuckDB CLI 的技能。它接受扩展名称及可选仓库参数,并提供更新模式。

主要功能

  1. 01安装指定的 DuckDB 扩展
  2. 02支持指定扩展仓库
  3. 03更新指定扩展或全部扩展
  4. 04检查并可升级 DuckDB CLI

适用场景

  1. 01安装任务所需的扩展
  2. 02更新 DuckDB 扩展和 CLI

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/duckdb/duckdb-skills --skill install-duckdb

安装后在 Claude Code 中输入/install-duckdb确认已加载。

附带文件eval.sh

详细介绍

参数:$@

每个扩展参数的形式为 name 或 name@repo。

  • name → INSTALL name;
  • name@repo → INSTALL name FROM repo;

第 1 步 — 定位 DuckDB

DUCKDB=$(command -v duckdb)

如果未找到,请告知用户:

未安装 DuckDB。 请先通过以下方式之一安装:

  • macOS: brew install duckdb
  • Linux: curl -fsSL https://install.duckdb.org | sh
  • Windows:winget install DuckDB.cli

然后重新运行 /duckdb-skills:install-duckdb。

如果未找到 DuckDB,则停止。

第 2 步 — 检查是否存在 --update 标志

如果 $@ 中存在 --update,请将其从参数列表中移除,并将模式设为 更新。 否则,模式为 安装。

第 3 步 — 构建并运行语句

安装模式:

解析剩余的每个参数:

  • 如果包含 @,则按 @ 拆分 → INSTALL <name> FROM <repo>;
  • 否则 → INSTALL <name>;

在一次 DuckDB 调用中全部运行:

"$DUCKDB" :memory: -c "INSTALL <ext1>; INSTALL <ext2> FROM <repo2>; ..."

更新模式:

首先,检查 DuckDB CLI 本身是否为最新版本:

CURRENT=$(duckdb --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
LATEST=$(curl -fsSL https://duckdb.org/data/latest_stable_version.txt)
  • 如果 CURRENT == LATEST → 报告 DuckDB CLI 已是最新版本。

  • 如果 CURRENT != LATEST → 询问用户:

    DuckDB CLI 已过时(已安装:CURRENT,最新版本:LATEST)。现在升级吗?

    如果用户同意,检测平台并运行相应的升级命令:

    • macOS(brew 可用):brew upgrade duckdb
    • Linux:curl -fsSL https://install.duckdb.org | sh
    • Windows:winget upgrade DuckDB.cli

然后更新扩展:

  • 未提供扩展名称 → 更新全部:UPDATE EXTENSIONS;
  • 提供了扩展名称 → 在一次调用中更新(忽略 @repo): UPDATE EXTENSIONS (<name1>, <name2>, ...);
"$DUCKDB" :memory: -c "UPDATE EXTENSIONS;"
# or
"$DUCKDB" :memory: -c "UPDATE EXTENSIONS (<ext1>, <ext2>, ...);"

调用完成后,报告成功或失败。

评论

支持 Markdown