这个项目能做什么
cargo-binstall 提供了一种低复杂度的机制来安装 Rust 二进制文件,作为通过 `cargo install` 从源码构建或手动下载包的替代方案。它的设计目标是与现有 CI 产物和基础设施配合使用,并为包维护者带来最小的额外负担。
工作原理:Binstall 从 crates.io 获取 crate 信息,在关联仓库中搜索匹配的发布版本和产物,回退到第三方产物托管服务 quickinstall,在支持的情况下尝试替代目标平台,最后作为兜底方案回退到 `cargo install`。
用法与 cargo install 类似。例如,`cargo binstall [email protected]` 会解析该包,从 GitHub 下载二进制文件,列出要安装的二进制文件,并请求确认。对于 CI 等无人值守场景,可以使用 `--no-confirm` 标志。其他选项可通过 `cargo binstall --help` 查看。
安装方式包括:适用于 Linux 和 macOS 的一行脚本、Homebrew、适用于 Windows 的 PowerShell 一行命令、手动下载特定平台归档文件(Linux x86_64/armv7/arm64,macOS Intel/Apple Silicon/Universal,Windows x86_64/aarch64)、使用 `cargo install cargo-binstall --locked` 从源码构建,以及第一方 GitHub Action。该项目还推荐第三方 taiki-e/install-action。
提到的配套工具包括 cargo-update,它会更新所有工具,并在存在 Binstall 时使用它;以及 cargo-run-bin,它将工具限定在项目范围内,并在 Cargo.toml 中控制版本。
对于不受支持的 crate,用户可以在命令行手动指定 `pkg-url`、`bin-dir` 和 `pkg-fmt`。维护者可以在 Cargo.toml 中添加显式的 Binstall 元数据,以便为给定版本和目标平台定位合适的二进制包。
签名:目前已有初步且有限的支持,允许维护者指定签名公钥以及在哪里查找包签名。启用后,Binstall 会下载并验证签名。`--only-signed` 会拒绝未签名的包,而 `--skip-signatures` 会禁用检查或下载签名。
安全说明:元数据通过 HTTPS 从 crates.io 拉取,并会验证 crate tar 校验和;包文件下载强制使用 TLS >= 1.2 的 HTTPS。与 `curl | sh` 脚本不同,Binstall 不会运行任意代码,不过正在安装的 crate 本身仍可能是恶意的。
遥测:某些安装策略可能会默认收集匿名使用统计信息。当使用 quickinstall 产物托管服务时,crate 名称、版本、目标平台三元组和用户代理会被发送到 cargo-quickinstall-stats-server URL 下的端点。聚合数据可公开访问。退出方式包括:`--disable-telemetry` 标志、`BINSTALL_DISABLE_TELEMETRY` 环境变量、禁用 quickinstall 策略,或在 crate 元数据的 `disabled-strategies` 配置键中添加 `quick-install`。
调试符号:带有 `.full` 后缀的额外预构建包包含拆分调试信息、文档文件,以及诸如 `detect-wasi` 实用程序之类的额外二进制文件。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。