跳转到内容

mise generate tool-stub

为基于 HTTP 的工具生成工具存根

此命令会生成工具存根,可以自动从 HTTP URL 下载并执行工具。它可以通过下载并分析工具,自动检测校验和、文件大小和二进制文件路径。

当使用特定平台的 URL 生成存根时,该命令会向现有存根文件追加新平台,而不是覆盖它们。这使你可以逐步构建跨平台工具存根。

参数

  • <OUTPUT> — 工具存根的输出文件路径

标志

  • -b --bin <BIN> — 提取的归档文件中的二进制路径

    如果未指定且已下载归档文件,将自动检测最可能的二进制文件

  • --bootstrap — 将存根包装在引导脚本中,在尚未安装 mise 时安装它

    启用后,会生成一个 bash 脚本,该脚本:

    1. 检查 mise 是否安装在预期路径
    2. 如果未安装,则使用嵌入式安装程序下载并安装 mise
    3. 使用 mise 执行工具存根
  • --bootstrap-version <BOOTSTRAP_VERSION> — 为引导脚本指定 mise 版本

    默认使用安装脚本中的最新版本。 使用此选项可固定到特定版本(例如:“2025.1.0”)。

  • --checksum-algorithm <CHECKSUM_ALGORITHM> — 下载构件时使用的校验和算法

    接受 blake3sha256,默认为 blake3。不能与 --lock--skip-download 一起使用,因为这些模式不会计算校验和。

    选项: blake3sha256

    默认值: blake3

  • --fetch — 获取现有工具存根文件的校验和和大小

    这会读取现有存根文件,并通过下载文件填充缺失的校验和/大小字段。存根中必须已经存在 URL。

  • --http <HTTP> — 要使用的 HTTP 后端类型

    默认值: http

  • --lock — 将锁文件数据(确切版本 + 平台 URL/校验和)解析并嵌入现有存根文件,以便在不调用运行时 API 的情况下进行可复现安装

  • --platform-bin <PLATFORM_BIN> — 平台特定的二进制路径,格式为 platform:path

    示例:--platform-bin windows-x64:tool.exe --platform-bin linux-x64:bin/tool

  • --platform-url <PLATFORM_URL> — 平台特定的 URL,格式为 platform:url 或仅为 url(自动检测平台)

    当输出文件已存在时,新平台将追加到现有平台表中。如果再次指定,现有平台 URL 将被更新。

    如果只提供 URL(不带 platform:),将根据 URL 文件名自动检测平台。

    示例:--platform-url linux-x64:https://... --platform-url https://nodejs.org/dist/v22.17.1/node-v22.17.1-darwin-arm64.tar.gz

  • --skip-download — 跳过用于校验和及二进制路径检测的下载(更快但信息较少)

  • -u --url <URL> — 用于下载工具的 URL

    示例:https://github.com/owner/repo/releases/download/v2.0.0/tool-linux-x64.tar.gz

  • --version <VERSION> — 工具的版本

    默认值: latest

  • -h --help — 打印帮助

示例:

Generate a tool stub for a single URL:
$ mise generate tool-stub ./bin/gh --url "https://github.com/cli/cli/releases/download/v2.96.0/gh_2.96.0_linux_amd64.tar.gz"

生成带有平台特定 URL 的工具存根:
$ mise generate tool-stub ./bin/rg \
    --platform-url linux-x64:https://github.com/BurntSushi/ripgrep/releases/download/14.0.3/ripgrep-14.0.3-x86_64-unknown-linux-musl.tar.gz \
    --platform-url darwin-arm64:https://github.com/BurntSushi/ripgrep/releases/download/14.0.3/ripgrep-14.0.3-aarch64-apple-darwin.tar.gz

向现有存根追加其他平台:
$ mise generate tool-stub ./bin/rg \
    --platform-url linux-x64:https://example.com/rg-linux.tar.gz
$ mise generate tool-stub ./bin/rg \
    --platform-url darwin-arm64:https://example.com/rg-darwin.tar.gz
# 现在该存根包含两个平台

使用 URL 自动检测平台:
$ mise generate tool-stub ./bin/node \
    --platform-url https://nodejs.org/dist/v22.17.1/node-v22.17.1-darwin-arm64.tar.gz
# 将从 URL 自动检测平台 'macos-arm64'

生成带平台特定二进制路径的存根:
$ mise generate tool-stub ./bin/tool \
    --platform-url linux-x64:https://example.com/tool-linux.tar.gz \
    --platform-url windows-x64:https://example.com/tool-windows.zip \
    --platform-bin windows-x64:tool.exe

生成时不下载(更快):
$ mise generate tool-stub ./bin/tool --url "https://example.com/tool.tar.gz" --skip-download

为现有存根获取校验和:
$ mise generate tool-stub ./bin/jq --fetch
# 这将读取现有存根并下载文件,以填充任何缺失的校验和/大小

生成一个在需要时安装 mise 的引导存根:
$ mise generate tool-stub ./bin/tool --url "https://example.com/tool.tar.gz" --bootstrap
# 该存根将在运行工具之前检查 mise 并自动安装它

生成一个带固定 mise 版本的引导存根:
$ mise generate tool-stub ./bin/tool --url "https://example.com/tool.tar.gz" --bootstrap --bootstrap-version 2025.1.0

使用固定版本和平台 URL/校验和锁定现有工具存根:
$ mise generate tool-stub ./bin/node --lock

更新已锁定存根中的版本:
$ mise generate tool-stub ./bin/node --lock --version 22
# 解析最新的 node 22.x,将其固定,并更新平台 URL/校验和